Sobes.tech
Middle

Mi a különbség a var és a dynamic között C#-ban?

sobes.tech MI

Válasz az MI-től

a var a helyi változók implicit típusosítására szolgál. A fordító a típusát a fordítási szakaszban határozza meg.

dynamic olyan objektumokkal való munkára szolgál, amelyek típusát csak futás közben ismerjük. A típusellenőrzés és a metódushívások futás közben történnek.

Jellemző var dynamic
Típusosítás Statikus (fordítás) Dinamikus (futás)
Típusellenőrzés Fordítás idején Futás közben
Teljesítmény Magas (meghatározott típus) Alacsonyabb (elemzés futás közben szükséges)
Korlátozások Csak helyi változók esetén Változók, mezők, tulajdonságok, paraméterek esetén
Alkalmazás Kényelem, kód rövidítése Interakció a COM, DLR, Reflection komponensekkel

Példa var-rel:

// A fordító meghatározza, hogy x int típusú
var x = 10;
// Fordítási hiba, mert x int típusú
// x = "szia";

Példa dynamic-rel:

// A y típusa futás közben kerül meghatározásra
dynamic y = 10;
// Nincs fordítási hiba, mert a típusellenőrzés futás közben történik
y = "szia";
// Metódus hívása, ami nem létezik; hiba fordítás közben vagy futás közben léphet fel
// y.ValamiMetodus();