Basado en mi respuesta a this question, quiero comprobar algo en mi comprensión de la próxima dynamic
tipo para C# 4.¿Puede el tipo "dinámico" variar de forma segura en una colección genérica <dynamic>?
En este caso, tenemos una colección que representa los campos de un registro extraído de una tabla de base de datos desconocida . El código anterior (pre.Net 4) requiere tales elementos de retención de la colección del tipo Object
. Dejando a un lado los méritos de una colección de este tipo, me pregunto qué pasará cuando cambie Object
a dynamic
.
Por un lado, espero que desde cosas para los tipos dinámicos están resueltos en tiempo de ejecución que todo debe estar muy bien, siempre y cuando el programador no hace ninguna errores tipográficos o errores sobre el tipo esperado de una opción concreta en la colección.
Por otro lado, me pregunto acerca de la palabra "todos" en la oración anterior. ¿Acaso el tiempo de ejecución podría almacenar en caché los resultados desde la primera vez que se accede a una propiedad dinámica, lo que hace que las llamadas posteriores que utilizan diferentes tipos fallen?
Esto es algo de lo que estaba preocupado. En mi ejemplo simple, es bastante fácil para el tiempo de ejecución saber que son tipos diferentes. Pero el almacenamiento en caché sí ocurre, por lo que si tuviera que hacer muchos de estos, podría ser posible encontrar un caso límite. En realidad, sin embargo, no creo que sea un problema para el caso, lo que provocó esta pregunta, que es bueno saber. –
@Joel: Claro, puede haber errores en la política de falta de caché. Si encuentras alguno, házmelo saber! :) –