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