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