Sobes.tech
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();