Sobes.tech
Middle

Koja je razlika između var i dynamic u C#?

sobes.tech АИ

Одговор од АИ

promenljiva var se koristi za implicitno tipiziranje lokalnih promenljivih. Kompajler određuje tip u fazi kompajliranja.

dynamic se koristi za rad sa objektima čiji je tip poznat samo tokom izvršavanja. Provera tipa i pozivi metoda se dešavaju tokom izvršavanja.

Karakteristika var dynamic
Tipizacija Staticka (kompilacija) Dinamička (izvršenje)
Provera tipa Tokom kompajliranja Tokom izvršavanja
Performanse Visoke (određen tip) Niže (analiza tokom izvršavanja je potrebna)
Ograničenja Samo za lokalne promenljive Za promenljive, polja, svojstva, parametre
Primena Prijatno, skraćivanje koda Interakcija sa COM, DLR, Reflection

Primer sa var:

// Kompajler određuje da je x tipa int
var x = 10;
// Greška pri kompajliranju, jer je x definisan kao int
// x = "zdravo";

Primer sa dynamic:

// Tip y se određuje tokom izvršavanja
dynamic y = 10;
// Nema greške pri kompajliranju, jer se provera vrši tokom izvršavanja
y = "zdravo";
// Poziv metode koja možda ne postoji; greška može nastati tokom izvršavanja
// y.NekaMetoda();