2010-05-06 18 views
5

¿Cree que el nuevo tipo dinámico para C# es un serio inconveniente con respecto a las ventajas de un lenguaje fuerte a máquina o cree que las ventajas (como sortear esas fuertes reflexiones) superan los riesgos?Tipos dinámicos de C#: ¿cielo o infierno?

Respuesta

5

El uso principal de la palabra clave dinámica parece ser para la interacción ASP.NET donde trabaja con un lenguaje débilmente tipado como Javascript, o para pasar parámetros dentro de las clases de ayuda ASP.NET MVC en una vista.

No creo que ningún programador experimentado de C# vaya a utilizarlo para reemplazar el sistema de tipos, y si lo hicieran serían derribados con bastante rapidez.

6

Siempre que no se use en lugares incorrectos, creo que es una gran adición al lenguaje y al marco. Usar dinámica solo porque tu pereza es algo malo, pero cuando realmente lo necesitas (COM, interacción con javascript y lo que tienes, etc.) ¡es genial!

0

Si se usa con moderación y con cuidado, me parece una valiosa adición. Como se mencionó en @JWL_, realizar el enlazamiento tardío de COM en C# fue doloroso antes de la dinámica.

Run-time overload resolution es otra área donde brilla dinámicamente. Cuando desee procesar descendientes de un tipo base de forma polimórfica y no controle la jerarquía, esto elimina la necesidad de una declaración de conmutación grande con conversión. Tenga en cuenta que puede atrapar la excepción específica de tiempo de ejecución.

Me he encontrado con esto al implementar TrackingParticipant.Track en WF4. Su código necesita saber el tipo de tiempo de ejecución TrackingRecord (see the partial hierarchy).

Cuestiones relacionadas