Ein anderer Ansatz wäre die Verwendung des Caller-Mitgliedsnamenattributs aus dem System. Runtime. Compiler Services-Namespace, um einen optionalen Parameter zu füllen. Zum Beispiel ...
Private Function GetMethodName(<System.Runtime.CompilerServices.CallerMemberName>
Optional memberName As String = Nothing) As String
Return memberName
End Function
Die Funktion wird wie erwartet aufgerufen ...
Public Sub DoSomeWork()
Dim methodName As String = GetMethodName()
Console.WriteLine($"Entered {methodName}")
End Sub
Anstatt nur den Methodennamen abzurufen, kann die Funktion auch den abgerufenen Methodennamen verwenden, um den Code weiter zu vereinfachen. Zum Beispiel...
Private Sub TraceEnter(
<System.Runtime.CompilerServices.CallerMemberName>
Optional memberName As String = Nothing)
Console.WriteLine($"Entered {memberName}")
End Sub
... was so verwendet werden könnte ...
Public Sub DoSomeWork()
TraceEnter()
End Sub
Andere Attribute im CompilerServices-Namespace können auf ähnliche Weise verwendet werden, um den vollständigen Pfad (zur Kompilierungszeit) der Quelldatei und / oder die Zeilennummer des Aufrufs abzurufen. Beispielcode finden Sie in der CallerMemberNameAttribute-Dokumentation.