Maison > développement back-end > C++ > Comment puis-je obtenir une liaison de données de type sécurisé en C# sans l'opérateur « nameof » ?

Comment puis-je obtenir une liaison de données de type sécurisé en C# sans l'opérateur « nameof » ?

Mary-Kate Olsen
Libérer: 2024-12-31 08:43:10
original
586 Les gens l'ont consulté

How Can I Achieve Type-Safe Data Binding in C# Without the `nameof` Operator?

Solutions de contournement pour l'absence d'opérateur 'nameof' en C# pour la liaison de données de type sécurisé

L'absence d'opérateur 'nameof' en C# a suscité des discussions parmi les développeurs. Cet opérateur, s'il est implémenté, permettrait la récupération des noms de propriétés sous forme de chaînes, telles que "Name" à partir de nameof(Customer.Name).

Pour les scénarios nécessitant une liaison de données de type sécurisé, les développeurs ont recherché des solutions de contournement dans le absence de « nom de ». Une solution est apparue dans .NET 3.5 qui utilisait des expressions lambda. Cependant, localiser cette solution de contournement peut s'avérer difficile.

Pour implémenter la fonctionnalité « nameof » dans .NET 3.5, l'approche suivante peut être adoptée :

using System;
using System.Linq.Expressions;

class Program
{
    static void Main()
    {
        var propName = Nameof<SampleClass>.Property(e => e.Name);

        Console.WriteLine(propName);
    }
}

public class Nameof<T>
{
    public static string Property<TProp>(Expression<Func<T, TProp>> expression)
    {
        var body = expression.Body as MemberExpression;
        if (body == null)
            throw new ArgumentException("'expression' should be a member expression");
        return body.Member.Name;
    }
}
Copier après la connexion

Ce code récupère et affiche efficacement le nom de la propriété sous forme de chaîne tout en garantissant la sécurité du type.

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