2010-06-23 27 views

Respuesta

11

¿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.

7

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.

15

No, no lo es. Son clases generadas por código en tiempo de compilación y funcionan tan bien como las clases normales.

5

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.

+2

¿Comparable o idéntico? –

+4

@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. –

+1

@ Jörg: Gracias por escribir eso aquí. Si no te importa, voy a robar tu respuesta. –

5

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.

Cuestiones relacionadas