Middle
Was ist der Unterschied zwischen var und dynamic in C#?
sobes.tech KI
Antwort von AI
var wird für die implizite Typisierung von lokalen Variablen verwendet. Der Compiler bestimmt den Typ zur Compile-Zeit.
dynamic wird verwendet, um mit Objekten zu arbeiten, deren Typ nur zur Laufzeit bekannt ist. Die Typüberprüfung und Methodenaufrufe erfolgen zur Laufzeit.
| Merkmal | var | dynamic |
|---|---|---|
| Typisierung | Statisch (Kompilierung) | Dynamisch (Ausführung) |
| Typüberprüfung | Zur Compile-Zeit | Zur Laufzeit |
| Leistung | Hoch (Typ festgelegt) | Geringer (Analyse zur Laufzeit erforderlich) |
| Einschränkungen | Nur für lokale Variablen | Für Variablen, Felder, Eigenschaften, Parameter |
| Anwendung | Bequemlichkeit, Codeverkürzung | Interaktion mit COM, DLR, Reflection |
Beispiel mit var:
// Der Compiler bestimmt, dass x vom Typ int ist
var x = 10;
// Kompilierungsfehler, da x als int definiert ist
// x = "Hallo";
Beispiel mit dynamic:
// Der Typ y wird zur Laufzeit bestimmt
dynamic y = 10;
// Kein Kompilierungsfehler, da die Überprüfung zur Laufzeit erfolgt
y = "Hallo";
// Aufruf einer Methode, die möglicherweise nicht existiert; Fehler kann zur Laufzeit auftreten
// y.IrgendeMethode();