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

Wie kann ich den Namen einer Variablen in C# effizient abrufen?

Patricia Arquette
Freigeben: 2024-12-26 17:01:09
Original
126 Leute haben es durchsucht

How Can I Efficiently Get a Variable's Name in C#?

Bestimmen von Variablennamen durch Reflexion

Variablennamen durch Reflexion identifizieren kann eine komplexe Aufgabe sein. Während dem IL-Code explizite Variablennamen fehlen, gibt es alternative Methoden, um sie abzurufen.

Ansatz über Ausdrucksbäume

Ein Ansatz beinhaltet die Verwendung von Ausdrucksbäumen. Durch die Heraufstufung von Variablen in Abschlüsse ist es möglich, ihre Namen über Ausdruckskörper zu erhalten:

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

Nachteile von Ausdrucksbäumen

Dieser Ansatz ist jedoch eher langsam und sollte in leistungsintensiven Szenarien vermieden werden. Dies erfordert die Erstellung mehrerer Objekte, GC-Druck und umfassende Reflexion.

Nameof-Schlüsselwort (C# 6.0 und höher)

Mit der Einführung des nameof-Schlüsselworts in C# 6.0 ist eine effizientere Methode entstanden:

static void Main()
{
    var someVar = 3;

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

Dieser Ansatz bietet Komfort und verursacht nur minimale Leistung Overhead.

Das obige ist der detaillierte Inhalt vonWie kann ich den Namen einer Variablen in C# effizient 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