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
Linda HamiltonOriginal
2024-12-27 03:56:09275Durchsuche

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));

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!

Stellungnahme:
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