Est-il mauvais d'utiliser des types anonymes dans C#?Performances des types anonymes en C#
Répondre
Les types anonymes sont-ils en eux-mêmes mauvais? Non. S'ils étaient l'équipe C# n'aurait certainement pas perdu leur temps en l'ajoutant à la langue. Sous le capot, ils se résument à des types CLR standard.
Les types anonymes, comme pratiquement tous les autres langages, peuvent être abusés au point d'être non-performants. Sûr.
Ils sont comme les autres types, en termes de performances.
modifier
Pour être plus clair, je aurais dû dire qu'ils accomplissent exactement comme d'autres types parce qu'ils sont exactement comme les autres types, à l'exception du fait que le compilateur génère le nom. La seule façon dont les performances souffriraient si vous transmettez une instance du type anonyme à une autre portée, où la réflexion ou dynamic
devrait être utilisée juste pour accéder aux propriétés. Ce serait coûteux car il implique une liaison tardive pour tout résoudre au moment de l'exécution.
Non, ce n'est pas le cas. Ce sont des classes générées par code à compiletime et fonctionnent aussi bien que les classes normales.
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.
Comparable ou identique? –
@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 des types nommés comme les autres, car c'est le seul type que l'interface CLI supporte. 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 aux types nommés car les types anonymes * sont des types nommés *. –
@ Jörg: Merci d'avoir épelé ça ici. Si cela ne vous dérange pas, je vais voler votre réponse. –
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.
- 1. Types anonymes en C++
- 2. Quels sont les types anonymes en C#?
- 3. C# 3.0 Types anonymes: Nommer
- 4. Utilisation de types anonymes C#
- 5. Utilisation des types anonymes avec Linq en VB, C#
- 6. Passer des types anonymes dans ASP.NET MVC
- 7. Types et génériques anonymes
- 8. Types clonés anonymes?
- 9. Méthodes et types anonymes
- 10. LINQ: Faire face à des types anonymes
- 11. Types WCF et anonymes
- 12. Types anonymes LINQ + vues MVC
- 13. Pourquoi les propriétés des types anonymes en C# sont-elles en lecture seule?
- 14. Types anonymes dans une signature
- 15. JavaScript comme des fonctions anonymes en C#
- 16. Types anonymes de niveau cours?
- 17. TryGetValue() dans l'expression linq avec des types anonymes
- 18. Les types anonymes dans C# sont-ils accessibles par réflexion?
- 19. Optimisations du compilateur de types anonymes
- 20. Comment itérez-vous de la liste des types anonymes?
- 21. Portée des variables à l'intérieur des fonctions anonymes en C#
- 22. Types anonymes et JsonResult dans ASP.NET MVC
- 23. Types anonymes - Y a-t-il des caractéristiques distinctives?
- 24. Silverlight 4 Liaison de données avec des types anonymes
- 25. Créer une union des membres de types anonymes
- 26. LINQ to SQL: DISTINCT Types anonymes
- 27. Comment retourner une liste de types anonymes
- 28. Création de variables de types anonymes dynamiques
- 29. JAXB: Types simples anonymes comme enums?
- 30. C# demande de fonctionnalité: implémenter des interfaces sur les types anonymes
Voir [Comment les types anonymes doivent-ils être utilisés dans C#?] (Http://stackoverflow.com/questions/48668/how-should-anonymous-types-be-used-in-c) –