Eh bien, je ne suis pas seul qui est d'être malade des cordes magiques qui sont constamment utilisés juste pour faire la liaison de données - voir:Ajout NomDe à C# par backdoors
How to make Databinding type safe and support refactoring
Cependant, je suis préoccupé par la performance de cette solution et beaucoup plus de frappe - chaque fois que vous souhaitez utiliser nameof vous devez taper un lambda. Donc je pense à plus de méthode brute-force - écrire une fonction nameof et un programme externe, qui va changer chaque fichier .cs avant qu'il ne soit compilé.
public string nameof<T>(T obj,string name = null)
{
return name;
}
Vous utiliseriez cette façon
nameof(the_object.MyProperty);
La clé réside dans le programme externe aidant NomDe - il rechercherait un appel de la NomDe, et il suffit de remplacer
nameof(X.Y.Z)
ou
nameof(X.Y.Z,"s")
dans Ma question est - quelles limites, pièges de cette approche voyez-vous? Ou peut-être .Net 5.0 avec le nom intégré sera envoyé la semaine prochaine, donc cela n'a aucun sens de commencer à écrire un programme pour cela? ;-)
Merci d'avance pour vos idées, recommandations, etc.
Si vous souhaitez cette fonctionnalité dans 5.0, ne retenez pas votre souffle, il ne sera probablement pas arriver ... voir [cet article] (http://blogs.msdn.com/b/ericlippert/archive/2009/05/21/in-foof-we-trust-a-dialogue.aspx) pour les raisons pourquoi . (mais je suis d'accord que ce serait très pratique, au moins pour les propriétés si ce n'est pour les méthodes) –