Heim >Backend-Entwicklung >C++ >Wie kann ich den Namen einer C#-Variablen zur Laufzeit abrufen?
Variablennamen mit Reflection abrufen
In C# können Variablen im kompilierten Intermediate Language (IL)-Code namenlos erscheinen. Wir können jedoch Reflexionstechniken verwenden, um Variablennamen abzurufen, indem wir Ausdrucksbäume nutzen.
Betrachten Sie das folgende Beispiel:
var someVar = 3; Console.WriteLine(GetVariableName(someVar));
Unser Ziel ist es, „someVar“ auszugeben.
Ausdrucksbäume verwenden
Reflection bietet keinen direkten Zugriff auf Variablennamen. Stattdessen können wir Ausdrucksbäume verwenden, um einen Abschluss zu erstellen, der die Variable in einen benannten Bereich hochstuft. Dies wird mit der folgenden Methode erreicht:
public static string GetVariableName<T>(Expression<Func<T>> expr) { var body = (MemberExpression)expr.Body; return body.Member.Name; }
Um diese Methode zu verwenden, wickeln wir die Variable in einen Lambda-Ausdruck ein:
Console.WriteLine(GetVariableName(() => someVar));
Hinweis: Dieser Ansatz ist mit enthalten ein Leistungsaufwand aufgrund der Objekterstellung und der starken Reflexionsnutzung.
C# 6.0 Alternative
Mit C# 6.0 vereinfacht das Schlüsselwort „nameof“ diesen Prozess:
Console.WriteLine(nameof(someVar));
Das Schlüsselwort „nameof“ bietet eine direkte, einfache Möglichkeit, Variablennamen abzurufen, ohne die Auswirkungen des Ausdrucks auf die Leistung Baummethode.
Das obige ist der detaillierte Inhalt vonWie kann ich den Namen einer C#-Variablen zur Laufzeit abrufen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!