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:

Weitere Informationen