Sobes.tech
Middle

Jaka jest różnica między var a dynamic w C#?

sobes.tech AI

Odpowiedź od AI

var jest używane do niejawnej typizacji lokalnych zmiennych. Kompilator określa typ na etapie kompilacji.

dynamic jest używany do pracy z obiektami, których typ jest znany tylko podczas wykonywania. Sprawdzanie typu i wywoływanie metod odbywa się podczas wykonywania.

Charakterystyka var dynamic
Typizacja Statyczna (kompilacja) Dynamiczna (w czasie wykonywania)
Sprawdzanie typu Podczas kompilacji Podczas wykonywania
Wydajność Wysoka (określony typ) Niższa (wymaga analizy podczas wykonywania)
Ograniczenia Tylko dla zmiennych lokalnych Dla zmiennych, pól, właściwości, parametrów
Zastosowanie Wygoda, skracanie kodu Interakcja z COM, DLR, Reflection

Przykład z var:

// Kompilator określa, że x ma typ int
var x = 10;
// Błąd kompilacji, ponieważ x jest typu int
// x = "cześć";

Przykład z dynamic:

// Typ y jest określany podczas wykonywania
dynamic y = 10;
// Nie ma błędu kompilacji, ponieważ sprawdzanie odbywa się podczas wykonywania
y = "cześć";
// Wywołanie metody, która może nie istnieć; błąd może wystąpić podczas wykonywania
// y.JakaśMetoda();