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; } }
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!