Middle
¿Cuál es la diferencia entre var y dynamic en C#?
sobes.tech AI
Respuesta de la IA
var se utiliza para la tipificación implícita de variables locales. El compilador determina el tipo en tiempo de compilación.
dynamic se usa para trabajar con objetos cuyo tipo solo se conoce en tiempo de ejecución. La comprobación del tipo y la llamada a métodos ocurren en tiempo de ejecución.
| Característica | var | dynamic |
|---|---|---|
| Tipificación | Estática (compilación) | Dinámica (ejecución) |
| Verificación de tipo | En tiempo de compilación | En tiempo de ejecución |
| Rendimiento | Alto (tipo definido) | Menor (se requiere análisis en tiempo de ejecución) |
| Restricciones | Solo para variables locales | Para variables, campos, propiedades, parámetros |
| Aplicación | Conveniencia, reducción de código | Interacción con COM, DLR, Reflection |
Ejemplo con var:
// El compilador determina que x es de tipo int
var x = 10;
// Error de compilación, ya que x está definido como int
// x = "hola";
Ejemplo con dynamic:
// El tipo y se determina en tiempo de ejecución
dynamic y = 10;
// No hay error de compilación, ya que la verificación ocurre en tiempo de ejecución
y = "hola";
// Llamada a un método que puede no existir; el error puede ocurrir en tiempo de ejecución
// y.AlgunMetodo();