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