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