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
Libérer: 2025-01-12 07:54:41
original
686 Les gens l'ont consulté

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 :

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;
}
Copier après la connexion

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 :

// For a static property:
string propertyName = GetPropertyName(() => SomeClass.SomeProperty);

// For an instance property:
string propertyName = GetPropertyName(() => someObject.SomeProperty);
Copier après la connexion

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 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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal