Standardwerte der C#-Typen (C#-Referenz)
In der folgenden Tabelle werden die Standardwerte von C#-Typen gezeigt:
Typ | Standardwert |
---|---|
Ein beliebiger Verweistyp | null |
Beliebiger integrierter integraler numerischer Typ | 0 (null) |
Beliebiger integrierter numerischer Gleitkommatyp | 0 (null) |
bool | false |
char | '\0' (U+0000) |
enum | Der Wert, der vom Ausdruck (E)0 erzeugt wird, bei dem E der Enumerationsbezeichner ist. |
struct | Der Wert, der erzeugt wird, indem alle Werttypfelder auf ihre Standardwerte festgelegt werden und alle Verweistypfelder auf null . |
Ein Werttyp, der NULL-Werte zulässt. | Eine Instanz, für die die HasValue-Eigenschaft false und die Value-Eigenschaft nicht definiert ist. Dieser Standardwert wird auch als NULL-Wert eines Nullable-Werttyps bezeichnet. |
Ausdrücke mit Standardwert
Verwenden Sie den default
-Operator, um wie im folgenden Beispiel den Standardwert eines Typs zu erzeugen:
int a = default(int);
Sie können das default
-Literal verwenden, um eine Variable mit dem Standardwert ihres Typs zu initialisieren:
int a = default;
Parameterloser Konstruktor eines Werttyps
Für einen Werttyp generiert der implizite parameterlose Konstruktor auch den Standardwert des Typs, wie das folgende Beispiel zeigt:
var n = new System.Numerics.Complex();
Console.WriteLine(n); // output: (0, 0)
Wenn die System.Type-Instanz zur Laufzeit einen Werttyp darstellt, können Sie die Activator.CreateInstance(Type)-Methode verwenden, um den parameterlosen Konstruktor aufzurufen, um den Standardwert des Typs abzurufen.
Hinweis
In C# 10 und höher kann ein Strukturtyp (also ein Werttyp) über einen expliziten parameterlosen Konstruktor verfügen, der möglicherweise einen Nicht-Standardwert des Typs erzeugt. Daher wird empfohlen, den default
-Operator oder das default
-Literal zu verwenden, um den Standardwert eines Typs zu erzeugen.
C#-Sprachspezifikation
Weitere Informationen finden Sie in den folgenden Abschnitten der C#-Sprachspezifikation:
- Standardwerte
- Standardkonstruktoren
- C# 10: parameterlose Strukturkonstruktoren
- C# 11: automatische Standardstrukturen