¿Es malo utilizar tipos anónimos en C#?Rendimiento de tipos anónimos en C#
Respuesta
¿Son los tipos anónimos en sí mismos malos? No. Si fueran el equipo de C#, ciertamente no habrían perdido el tiempo agregándolo al idioma. Debajo del capó, simplemente compilan hasta los tipos de CLR estándar.
Pueden los tipos anónimos, como prácticamente cualquier otra característica del lenguaje, ser abusados hasta el punto de no ser efectivos. Por supuesto.
Son como otros tipos, en términos de rendimiento.
edición
Para ser más claro, que debería haber dicho que realizan exactamente igual que otros tipos, ya que son exactamente igual que otros tipos, excepto por el hecho de que el compilador genera el nombre. La única forma de que el rendimiento se vea afectado es si pasa una instancia del tipo anónimo a otro ámbito, donde se debería utilizar la reflexión o dynamic
solo para acceder a las propiedades. Eso sería costoso porque implica un enlace tardío para resolver todo en tiempo de ejecución.
No, no lo es. Son clases generadas por código en tiempo de compilación y funcionan tan bien como las clases normales.
Un tipo anónimo en C# sigue siendo un tipo estático y el compilador resuelve el acceso a sus métodos y propiedades. El rendimiento es comparable a los tipos explícitos.
¿Comparable o idéntico? –
@Steven Sudit: no existe el tipo anónimo en la CLI. De hecho, los tipos anónimos en C# son solo una ficción: en realidad, son tipos nombrados como cualquier otro, porque ese es el único tipo que admite la CLI. La única diferencia es que su nombre es generado por un generador de números aleatorios en lugar de un humano. Entonces, sí, el rendimiento de los tipos anónimos es idéntico a los tipos con nombre porque los tipos anónimos * son * tipos con nombre. –
@ Jörg: Gracias por escribir eso aquí. Si no te importa, voy a robar tu respuesta. –
No está mal, a veces es conveniente. Por ejemplo, al usar Linq, en lugar de crear una clase que se utilizará solo una vez, es preferible usar tipos anónimos.
- 1. tipos anónimos
- 2. ¿Colecciones de tipos anónimos?
- 3. polimorfismo, genéricos y tipos anónimos C#
- 4. tipos anónimos y genéricos
- 5. IQueryable para tipos anónimos
- 6. WCF y tipos anónimos
- 7. Declaración de tipos anónimos Lista
- 8. jugar con los tipos anónimos
- 9. ¿Cómo deben usarse los tipos anónimos en C#?
- 10. C# solicitud de función: implementar interfaces de tipos anónimos
- 11. ¿Hay alguna manera de concaturar los tipos anónimos de C#?
- 12. ¿Tipos anónimos a una matriz de objetos?
- 13. Tipos anónimos y Obtener acceso en WP7.1?
- 14. Optimizaciones del compilador de tipos anónimos
- 15. Tipos anónimos - ¿Hay alguna característica de distinción?
- 16. delegados anónimos en C#
- 17. distinto en LINQ con los tipos anónimos (en VB.NET)
- 18. ¿Puedo serializar tipos anónimos como xml?
- 19. Devolver tipos anónimos con API web
- 20. JAXB: tipos simples anónimos como enumeraciones?
- 21. ¿Por qué las propiedades de los tipos anónimos en C# son de solo lectura?
- 22. Enlace de datos de Silverlight 4 con tipos anónimos
- 23. Aparte de las consultas LINQ, ¿cómo se usan los tipos anónimos en C#?
- 24. ¿Cuál es el propósito de los tipos anónimos?
- 25. Cómo LINQ Distinto por múltiples campos sin tipos anónimos
- 26. ¿Se puede acceder a los tipos anónimos en C# mediante la reflexión?
- 27. ¿Qué son los métodos anónimos en C#?
- 28. C# Los tipos anónimos no se pueden asignar a - es de solo lectura
- 29. Opción Los tipos estrictos y anónimos no van juntos?
- 30. ¿Por qué tipos anónimos equivale a la implementación compara campos?
Ver [¿Cómo se deben usar los tipos anónimos en C#?] (Http://stackoverflow.com/questions/48668/how-should-anonymous-types-be-used-in-c) –