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();