Wenn ich eine Klasse namens MyProgram
gibt es eine Möglichkeit, die " MeinProgramm " als Zeichenkette?
Antwort
Zu viele Anzeigen?
Display name
Punkte
1172
Am einfachsten ist es, das Attribut call name zu verwenden. Allerdings gibt es derzeit keine Attributklasse, die den Klassennamen oder den Namespace der aufrufenden Methode zurückgibt.
Siehe: CallerMemberNameAttributeClass
public void DoProcessing()
{
TraceMessage("Something happened.");
}
public void TraceMessage(string message,
[System.Runtime.CompilerServices.CallerMemberName] string memberName = "",
[System.Runtime.CompilerServices.CallerFilePath] string sourceFilePath = "",
[System.Runtime.CompilerServices.CallerLineNumber] int sourceLineNumber = 0)
{
System.Diagnostics.Trace.WriteLine("message: " + message);
System.Diagnostics.Trace.WriteLine("member name: " + memberName);
System.Diagnostics.Trace.WriteLine("source file path: " + sourceFilePath);
System.Diagnostics.Trace.WriteLine("source line number: " + sourceLineNumber);
}
// Sample Output:
// message: Something happened.
// member name: DoProcessing
// source file path: c:\Users\username\Documents\Visual Studio 2012\Projects\CallerInfoCS\CallerInfoCS\Form1.cs
// source line number: 31
- See previous answers
- Weitere Antworten anzeigen