Maison > développement back-end > C++ > Comment puis-je obtenir efficacement le nom d'une variable en C# ?

Comment puis-je obtenir efficacement le nom d'une variable en C# ?

Patricia Arquette
Libérer: 2024-12-26 17:01:09
original
186 Les gens l'ont consulté

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

Détermination des noms de variables avec réflexion

Identifier les noms de variables par réflexion peut être une tâche complexe. Bien que le code IL manque de noms de variables explicites, il existe des méthodes alternatives pour les récupérer.

Approche via les arbres d'expression

Une approche consiste à utiliser des arbres d'expression. En promouvant les variables en fermetures, il est possible d'obtenir leurs noms via des corps d'expression :

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

    return body.Member.Name;
}
Copier après la connexion

Utilisation :

static void Main()
{
    var someVar = 3;

    Console.Write(GetVariableName(() => someVar));
}
Copier après la connexion

Inconvénients des arbres d'expression

Cependant, cette approche est plutôt lente et doit être évitée dans les scénarios gourmands en performances. Cela implique la création de plusieurs objets, une pression GC et une réflexion approfondie.

Nom du mot-clé (C# 6.0 et supérieur)

Avec l'introduction du mot-clé nameof en C# 6.0, une méthode plus efficace a émergé :

static void Main()
{
    var someVar = 3;

    Console.Write(nameof(someVar));
}
Copier après la connexion

Cette approche est pratique et entraîne des performances minimales frais généraux.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal