Maison >développement back-end >C++ >Comment récupérer un nom de propriété sous forme de chaîne en C# ?

Comment récupérer un nom de propriété sous forme de chaîne en C# ?

Patricia Arquette
Patricia Arquetteoriginal
2025-01-12 07:54:41601parcourir

How to Retrieve a Property Name as a String in C#?

Accès aux noms de propriétés sous forme de chaînes en C#

En programmation C#, notamment lors de l'utilisation de la réflexion, il est fréquemment nécessaire d'obtenir le nom d'une propriété sous forme de chaîne. Cela s'avère inestimable pour des tâches telles que l'invocation de méthodes dynamiques ou la protection contre le renommage accidentel de propriétés.

Exploiter l'opérateur nameof (C# 6.0 et versions ultérieures)

Depuis C# 6.0, l'opérateur nameof propose une solution simple et efficace. L'expression nameof(SomeProperty) renvoie directement la chaîne "SomeProperty" au moment de la compilation.

Une méthode de récupération de nom de propriété générique

Pour les versions de C# antérieures à 6.0, une méthode générique propose une solution de contournement :

<code class="language-csharp">public static string GetPropertyName<T>(Expression<Func<T>> propertyLambda)
{
    var me = propertyLambda.Body as MemberExpression;
    if (me == null)
    {
        throw new ArgumentException("Invalid lambda expression");
    }
    return me.Member.Name;
}</code>

Cette méthode accepte une expression lambda référençant une propriété et renvoie son nom.

Application pratique

Voici comment utiliser la méthode GetPropertyName :

<code class="language-csharp">// For a static property:
string propertyName = GetPropertyName(() => SomeClass.SomeProperty);

// For an instance property:
string propertyName = GetPropertyName(() => someObject.SomeProperty);</code>

Résumé

Que vous utilisiez l'opérateur nameof moderne ou la méthode GetPropertyName, la récupération des noms de propriété sous forme de chaînes est simplifiée, améliorant ainsi la maintenabilité et la robustesse du code lors de la réflexion et de la refactorisation.

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