Middle
Jaký je rozdíl mezi var a dynamic v C#?
sobes.tech AI
Odpověď od AI
proměnná var se používá pro implicitní typizaci místních proměnných. Kompilátor určuje typ v době kompilace.
dynamic se používá pro práci s objekty, jejichž typ je znám pouze během běhu programu. Kontrola typu a volání metod probíhá během běhu.
| Charakteristika | var | dynamic |
|---|---|---|
| Typizace | Statická (kompilace) | Dynamická (běh) |
| Kontrola typu | Během kompilace | Během běhu |
| Výkon | Vysoký (určený typ) | Nižší (analýza během běhu je nutná) |
| Omezení | Pouze pro lokální proměnné | Pro proměnné, pole, vlastnosti, parametry |
| Použití | Pohodlí, zkrácení kódu | Interakce s COM, DLR, Reflection |
Příklad s var:
// Kompilátor určuje, že x má typ int
var x = 10;
// Chyba při kompilaci, protože x je typu int
// x = "ahoj";
Příklad s dynamic:
// Typ y je určen během běhu
dynamic y = 10;
// Neexistuje chyba při kompilaci, protože kontrola probíhá během běhu
y = "ahoj";
// Volání metody, která nemusí existovat; chyba může nastat během běhu
// y.NějakáMetoda();