Middle
Mis vahe on var ja dynamic C#-s?
sobes.tech AI
Vastus AI-lt
muutuja var kasutatakse kohalike muutujate kaudseks tüübistamiseks. Kogumismasin määrab tüübi kompileerimise ajal.
dynamic kasutatakse objektidega töötamiseks, mille tüüp on teada ainult täitmise ajal. Tüübi kontroll ja meetodite kutsed toimuvad täitmise ajal.
| Omadus | var | dynamic |
|---|---|---|
| Tüübistamine | Statiline (kompileerimine) | Dynaamiline (täitmise ajal) |
| Tüübi kontroll | Kompileerimise ajal | Täitmise ajal |
| Tulemuslikkus | Kõrge (määratud tüüp) | Madalam (analüüs on vajalik täitmise ajal) |
| Piirangud | Ainult kohalikele muutujatele | Muutujatele, väljadele, omadustele, parameetritele |
| Rakendus | Mugavus, koodi lühendamine | Koostoime COM, DLR, Reflection-iga |
Näide var-ga:
// Kompilaator määrab, et x on `int`
var x = 10;
// Kompileerimisviga, kuna x on `int`
// x = "tere";
Näide dynamic-ga:
// y tüüp määratakse täitmise ajal
dynamic y = 10;
// Ei ole kompileerimisviga, kuna kontroll toimub täitmise ajal
y = "tere";
// Meetodi väljakutse, mis võib mitte eksisteerida; viga võib tekkida täitmise ajal
// y.MõniMeetod();