Heim > Backend-Entwicklung > C++ > Wie kann Reflection zum Abrufen von Variablennamen in C# verwendet werden?

Wie kann Reflection zum Abrufen von Variablennamen in C# verwendet werden?

Linda Hamilton
Freigeben: 2024-12-30 22:41:12
Original
378 Leute haben es durchsucht

How Can Reflection Be Used to Retrieve Variable Names in C#?

Variablennamenabruf durch Reflektion verstehen

Die Aufgabe, Variablennamen mithilfe von Reflektion abzurufen, beschäftigt Entwickler seit einiger Zeit. Die Unfähigkeit, nach der Kompilierung in IL auf Variablennamen zuzugreifen, stellt eine Herausforderung dar. Mit einem kreativen Ansatz kann die Reflexion jedoch genutzt werden, um diese Einschränkung zu überwinden.

Um dies zu erreichen, werden Ausdrucksbäume und Abschlussförderung eingesetzt. Ausdrucksbäume bieten eine Möglichkeit, Ausdrücke auf programmatische Weise darzustellen. Indem Sie eine Variable zu einem Abschluss heraufstufen, können Sie ihren Namen effektiv beibehalten.

Der folgende Code demonstriert die Implementierung dieser Technik:

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

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

Diese Methode nimmt einen Ausdruck und ruft den Namen von ab die Variable, auf die es verweist. Zum Beispiel:

static void Main()
{
    var someVar = 3;

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

In diesem Beispiel wird die Methode GetVariableName verwendet, um den Namen der Variablen someVar abzurufen.

Leistungsüberlegungen

Es ist wichtig zu beachten, dass diese Technik rechenintensiv sein kann. Das Erstellen und Zerstören von Objekten während der Ausführung kann den Druck der Garbage Collection erhöhen. Darüber hinaus werden unter der Haube mehrere Methoden aufgerufen und die Reflexion wird stark genutzt. Daher ist es ratsam, diesen Ansatz in leistungskritischen Codepfaden zu vermeiden.

Das obige ist der detaillierte Inhalt vonWie kann Reflection zum Abrufen von Variablennamen in C# verwendet werden?. 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