est-il mauvais d'utiliser des types anonymes dans C # ? p>
5 Réponses :
Ils sont comme des autres types, en termes de performance. p>
éditer em> p>
Pour être plus clair, j'aurais dû dire qu'ils remplissent exactement comme d'autres types, car ils ressemblent exactement à d'autres types, à l'exception du fait que le compilateur génère le nom. La seule façon de subir des performances est si vous passez une instance du type anonyme à une autre portée, où la réflexion ou dynamique code> devrait être utilisée pour accéder aux propriétés. Cela serait coûteux car cela implique une liaison tardive pour tout résoudre au moment de l'exécution. p>
Non, ce n'est pas le cas. Ce sont des cours générés par le code à la compilation et effectuez des classes normales. P>
Un type anonyme en C # est toujours un type statique et l'accès à ses méthodes et propriétés est résolu par le compilateur. La performance est comparable aux types explicites. P>
@Steven Sudit: Il n'y a pas de type anonyme dans la CLI. En fait, les types anonymes en C # ne sont qu'une fiction: ils sont en fait nommés types comme n'importe quel autre, car c'est le seul type que les supports CLI. La seule différence est que leur nom est généré par un générateur de nombres aléatoires au lieu d'un humain. Donc, oui, la performance des types anonymes est identique à des types nommés, car les types anonymes sont i> types nommés.
@ Jörg: Merci d'avoir orthographié ça ici. Si cela ne vous dérange pas, je vais voler votre réponse.
Les types anonymes n'ont pas de méthodes ;-)
@macias: comment appelez-vous le constructeur par défaut, puis? :-)
@macias: Oui, j'appelle aussi un constructeur, car c'est une description précise. Selon msdn.microsoft.com/en-us/library/ms173115.aspx < / a>, les constructeurs sont des méthodes, ce qui l'appelait donc une méthode serait également exacte.
Ce n'est pas mauvais, parfois c'est pratique. Par exemple, lors de l'utilisation de LINQ, au lieu de créer une classe qui ne sera utilisée qu'une seule fois, il est préférable d'utiliser des types anonymes. P>
sont des types anonymes en eux-mêmes? Non, s'ils étaient l'équipe C # n'aurait certainement pas gaspillé leur temps l'ajoutant à la langue. Sous la hotte, ils compilent simplement jusqu'à des types de CLR standard. p>
Les types anonymes peuvent-ils, comme pratiquement toutes les autres caractéristiques de la langue, être abusés au point d'être non performant. Sûr. p>
Voir Comment les types anonymes doivent-ils être utilisés dans C #?