Heim > Backend-Entwicklung > C++ > Wie kann ich mithilfe von Reflection den Namen einer Variablen in C# abrufen und welche Alternativen gibt es?

Wie kann ich mithilfe von Reflection den Namen einer Variablen in C# abrufen und welche Alternativen gibt es?

Mary-Kate Olsen
Freigeben: 2024-12-30 18:48:15
Original
191 Leute haben es durchsucht

How Can I Get a Variable's Name in C# Using Reflection and What are the Alternatives?

Erhalten von Variablennamen durch Reflektion

Die Bestimmung des Namens einer Variablen nach der Kompilierung mithilfe von Reflektion allein ist nicht möglich. Variablen verlieren ihre Namen während der Kompilierung in die Intermediate Language (IL).

Mit Ausdrucksbäumen und Lambda-Ausdrücken ist es jedoch möglich, eine Variable zu einem Abschluss heraufzustufen und so eine anonyme Funktion zu erstellen, die auf die Variable verweist.

Code Implementierung:

static string GetVariableName<T>(Expression<Func<T>> expr)
{
    var body = (MemberExpression)expr.Body;

    return body.Member.Name;
}
Nach dem Login kopieren

Verwendung:

static void Main()
{
    var someVar = 3;

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

Leistungsüberlegungen:

Die Verwendung dieser Methode kann aufgrund der Erstellung mehrerer Objekte, des GC-Drucks und des Overheads langsam sein Reflexion.

Alternative mit C# 6.0 und höher:

In C# 6.0 ermöglicht das Schlüsselwort nameof einen einfacheren Ansatz:

static void Main()
{
    var someVar = 3;

    Console.Write(nameof(someVar));
}
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWie kann ich mithilfe von Reflection den Namen einer Variablen in C# abrufen und welche Alternativen gibt es?. 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