Sobes.tech
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();