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