Middle
Wat is het verschil tussen var en dynamic in C#?
sobes.tech AI
Antwoord van AI
var wordt gebruikt voor impliciete typing van lokale variabelen. De compiler bepaalt het type tijdens de compilatie.
dynamic wordt gebruikt om te werken met objecten waarvan het type alleen tijdens runtime bekend is. Typecontrole en methodenaanroepen vinden plaats tijdens runtime.
| Kenmerk | var | dynamic |
|---|---|---|
| Type | Statisch (compilatie) | Dynamisch (uitvoering) |
| Typecontrole | Tijdens compilatie | Tijdens uitvoering |
| Prestaties | Hoog (type vastgesteld) | Lager (analyse tijdens runtime vereist) |
| Beperkingen | Alleen voor lokale variabelen | Voor variabelen, velden, eigenschappen, parameters |
| Toepassing | Gemak, verkorting van code | Interactie met COM, DLR, Reflection |
Voorbeeld met var:
// De compiler bepaalt dat x van type int is
var x = 10;
// Compileerfout, omdat x als int is gedefinieerd
// x = "hallo";
Voorbeeld met dynamic:
// Het type y wordt tijdens runtime bepaald
dynamic y = 10;
// Geen compileerfout, omdat controle tijdens runtime plaatsvindt
y = "hallo";
// Aanroep van een methode die mogelijk niet bestaat; fout kan tijdens runtime optreden
// y.IetsMethode();