Sobes.tech
Middle

Qual è la differenza tra var e dynamic in C#?

sobes.tech AI

Risposta dell'AI

var viene utilizzato per la tipizzazione implicita delle variabili locali. Il compilatore determina il tipo in fase di compilazione.

dynamic viene usato per lavorare con oggetti il cui tipo è noto solo durante l'esecuzione. Il controllo del tipo e la chiamata ai metodi avvengono durante l'esecuzione.

Caratteristica var dynamic
Tipizzazione Statica (compilazione) Dinamica (esecuzione)
Verifica del tipo In fase di compilazione In fase di esecuzione
Prestazioni Alta (tipo definito) Inferiore (richiede analisi in fase di esecuzione)
Limitazioni Solo per variabili locali Per variabili, campi, proprietà, parametri
Applicazione Comodità, riduzione del codice Interazione con COM, DLR, Reflection

Esempio con var:

// Il compilatore determina che x è di tipo int
var x = 10;
// Errore di compilazione, poiché x è definito come int
// x = "ciao";

Esempio con dynamic:

// Il tipo y viene determinato durante l'esecuzione
dynamic y = 10;
// Non ci sono errori di compilazione, poiché il controllo avviene in fase di esecuzione
y = "ciao";
// Chiamata a un metodo che potrebbe non esistere; l'errore può verificarsi durante l'esecuzione
// y.AlgunoMetodo();