Sobes.tech
Middle

Aký je rozdiel medzi var a dynamic v C#?

sobes.tech AI

Odpoveď od AI

premenná var sa používa na implicitnú typizáciu lokálnych premenných. Kompilátor určuje typ v štádiu kompilácie.

dynamic sa používa na prácu s objektmi, ktorých typ je známy iba počas behu. Kontrola typu a volania metód sa vykonávajú počas behu.

Charakteristika var dynamic
Typizácia Statická (kompilácia) Dynamická (behanie)
Kontrola typu Počas kompilácie Počas behu
Výkon Vysoký (určený typ) Nižší (analýza počas behu je potrebná)
Obmedzenia Iba pre lokálne premenné Pre premenné, polia, vlastnosti, parametre
Použitie Pohodlie, skrátenie kódu Interakcia s COM, DLR, Reflection

Príklad s var:

// Kompilátor určuje, že x je typu int
var x = 10;
// Chyba pri kompilácii, pretože x je typu int
// x = "ahoj";

Príklad s dynamic:

// Typ y je určený počas behu
dynamic y = 10;
// Neexistuje chyba pri kompilácii, pretože kontrola prebieha počas behu
y = "ahoj";
// Volanie metódy, ktorá nemusí existovať; chyba sa môže vyskytnúť počas behu
// y.NiečoMetoda();