Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
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