Middle
Care este diferența dintre var și dynamic în C#?
sobes.tech AI
Răspuns de la AI
var este utilizat pentru tipizarea implicită a variabilelor locale. Compilatorul determină tipul în timpul compilării.
dynamic este folosit pentru a lucra cu obiecte al căror tip este cunoscut doar în timpul execuției. Verificarea tipului și apelurile de metode au loc în timpul execuției.
| Caracteristică | var | dynamic |
|---|---|---|
| Tipizare | Statică (compilare) | Dinamică (execuție) |
| Verificare tip | În timpul compilării | În timpul execuției |
| Performanță | Ridicată (tip definit) | Mai scăzută (analiză în timpul execuției necesară) |
| Limitări | Doar pentru variabile locale | Pentru variabile, câmpuri, proprietăți, parametri |
| Aplicare | Confort, reducerea codului | Interacțiune cu COM, DLR, Reflection |
Exemplu cu var:
// Compilatorul determină că x are tipul int
var x = 10;
// Eroare de compilare, deoarece x este definit ca int
// x = "salut";
Exemplu cu dynamic:
// Tipul y este determinat în timpul execuției
dynamic y = 10;
// Nu există eroare de compilare, deoarece verificarea are loc în timpul execuției
y = "salut";
// Apelarea unei metode care poate să nu existe; eroarea poate apărea în timpul execuției
// y.CareMetoda();