¿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
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.
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!
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).
- 1. Permitir el mapeo de tipos dinámicos usando AutoMapper o similar?
- 2. C# 4: Ejemplo en el mundo real de tipos dinámicos
- 3. ¿Puedo usar tipos dinámicos en F #?
- 4. PropertyGrid y tipos de objetos dinámicos
- 5. dinámicos LINQ o condiciones
- 6. ¿Nos dirigimos al infierno de jar en la plataforma java similar al infierno de dll?
- 7. Refactorización "incluye archivo infierno"
- 8. Datos dinámicos en C++
- 9. OpenGL: Crear un cuadro de cielo?
- 10. infierno de perfil de provisión
- 11. Evitando el infierno de sobrecarga con C# 4.0
- 12. Comportamiento extraño al usar tipos dinámicos como parámetros de método
- 13. Fusionando archivos vcproj - SCM infierno
- 14. PHP: Bloques de captura dinámicos o programáticos
- 15. C# fusión profunda/anidada/recursiva de objetos dinámicos/de expansión
- 16. Infierno de dependencia de componente personalizado
- 17. recursividad infinita en Python o lenguajes dinámicos
- 18. Creación de patrones Regex dinámicos en C#
- 19. ASP.NET - Controles dinámicos creados en Page_Pre_init() o Page_Init() o Page_Load()
- 20. C# .Net4: objetos COM (dinámicos) correctamente desechables
- 21. Resolviendo el infierno de dependencia con el compositor
- 22. C# 4.0 Implícitamente Typed objetos dinámicos
- 23. Tipos de concreto o interfaces para tipos de devolución?
- 24. C# - son parámetros dinámicos en caja
- 25. Arrays dinámicos
- 26. ¿Qué tipos de datos de C# pueden ser tipos anulables?
- 27. C#: Fundición tipos dinámicamente
- 28. Demasiados conjuntos dinámicos
- 29. UIMenuItems dinámicos con @selector y métodos dinámicos
- 30. Rails Tipos enumerados o alternativas