Heim > Backend-Entwicklung > C++ > Wie kann ich den Namen einer C#-Variablen zur Laufzeit abrufen?

Wie kann ich den Namen einer C#-Variablen zur Laufzeit abrufen?

Linda Hamilton
Freigeben: 2024-12-27 03:56:09
Original
272 Leute haben es durchsucht

How Can I Get a C# Variable's Name at Runtime?

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));
Nach dem Login kopieren

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;
}
Nach dem Login kopieren

Um diese Methode zu verwenden, wickeln wir die Variable in einen Lambda-Ausdruck ein:

Console.WriteLine(GetVariableName(() => someVar));
Nach dem Login kopieren

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));
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage