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