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

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

Mary-Kate Olsen
Libérer: 2025-01-01 02:44:08
original
265 Les gens l'ont consulté

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

Alternative au nom de l'opérateur pour la liaison de données de type sécurisé en C#

L'une des améliorations linguistiques actuelles pour C# est l'inclusion d'un 'nom de ' opérateur. Cet opérateur permet un accès sécurisé aux noms de propriété, ce qui facilite la liaison des objets de domaine aux éléments de l'interface utilisateur. Voici une solution de contournement qui peut fournir des fonctionnalités similaires en C# avant l'implémentation de l'opérateur 'nameof'.

Solution de contournement .NET 3.5

Dans .NET 3.5, vous pouvez utilisez des expressions lambda pour extraire les noms de propriétés sous forme de chaînes :

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 utilise une classe générique, 'Nameof<>', pour accepter une expression qui cible une propriété. Le corps de l'expression est ensuite examiné pour extraire le nom de la propriété.

Remarque : Cette solution de contournement nécessite C# 3.0 ou version ultérieure.

Compatibilité .NET 2.0

Malheureusement, l'implémentation de la fonctionnalité de l'opérateur 'nameof' dans .NET 2.0 est pas possible. Cependant, vous pouvez toujours construire manuellement des noms de propriétés à l'aide de la réflexion.

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!

source:php.cn
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