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
Patricia Arquetteoriginal
2024-12-26 17:01:09135parcourir

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

Utilisation :

static void Main()
{
    var someVar = 3;

    Console.Write(GetVariableName(() => someVar));
}

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

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!

Déclaration:
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