Maison > développement back-end > C++ > Comment puis-je récupérer de manière fiable les noms de propriétés des expressions Lambda dans .NET?

Comment puis-je récupérer de manière fiable les noms de propriétés des expressions Lambda dans .NET?

Mary-Kate Olsen
Libérer: 2025-02-01 05:36:09
original
947 Les gens l'ont consulté

How Can I Reliably Retrieve Property Names from Lambda Expressions in .NET?

Une approche robuste pour extraire les noms de propriétés de .NET Lambda Expressions

De nombreux développeurs .NET ont souvent besoin d'extraire les noms de propriétés des expressions Lambda. Les méthodes existantes, telles que la coulée directe vers MemberExpression ou le fait de s'appuyer sur des membres basés sur des objets, sont souvent insuffisantes en termes de flexibilité et de sécurité de type. Cet article présente une technique supérieure pour récupérer les noms de propriétés, offrant une robustesse et une vérification de type améliorées.

Amélioration de la récupération du nom de la propriété

Cette méthode améliorée exploite la puissance de la classe PropertyInfo, qui fournit une représentation bien définie d'une propriété dans le framework .NET. La fonction centrale pour extraire l'objet PropertyInfo d'une expression de lambda est la suivante:

public static PropertyInfo GetPropertyInfo<TSource, TProperty>(
    Expression<Func<TSource, TProperty>> propertyLambda)
{
    // Verify that the expression body is a MemberExpression
    if (!(propertyLambda.Body is MemberExpression member))
    {
        throw new ArgumentException("The lambda expression must refer to a property.");
    }

    // Ensure the member is a PropertyInfo
    if (!(member.Member is PropertyInfo propertyInfo))
    {
        throw new ArgumentException("The member expression must refer to a property.");
    }

    // Validate property type and accessibility
    ValidatePropertyInfo(typeof(TSource), propertyInfo);

    return propertyInfo;
}
Copier après la connexion

Application pratique

La méthode améliorée GetPropertyInfo simplifie le processus de récupération des noms de propriétés:

var propertyInfo = GetPropertyInfo((SomeUserObject u) => u.UserID);
// Utilize propertyInfo as required
Copier après la connexion

Résumé

Cette approche raffinée offre une solution plus fiable et polyvalente pour accéder aux noms de propriétés à partir des expressions Lambda dans .NET. En éliminant le besoin de coulée manuelle et d'accès aux membres d'objets et d'incorporer une validation de type robuste, les développeurs peuvent écrire du code plus propre, plus maintenable et de type type lorsque vous travaillez avec des expressions Lambda liées à la propriété.

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