Standaardwaarden van C#-typen (C#-verwijzing)
In de volgende tabel ziet u de standaardwaarden van C#-typen:
Type | Default value |
---|---|
Elk verwijzingstype | null |
Elk ingebouwd integraal numeriek type | 0 (nul) |
Elk ingebouwd numeriek type drijvende komma | 0 (nul) |
bool | false |
Char | '\0' (U+0000) |
Enum | De waarde die wordt geproduceerd door de expressie (E)0 , waar E is de enum-id. |
Struct | De waarde die wordt geproduceerd door alle waardetypevelden in te stellen op de standaardwaarden en alle verwijzingstypevelden.null |
Een null-waardetype | Een exemplaar waarvan de HasValue eigenschap is false en de Value eigenschap is niet gedefinieerd. Deze standaardwaarde wordt ook wel de null-waarde van een type null-waarde genoemd. |
Standaardwaarde-expressies
Gebruik de default
operator om de standaardwaarde van een type te produceren, zoals in het volgende voorbeeld wordt weergegeven:
int a = default(int);
U kunt de default
letterlijke waarde gebruiken om een variabele te initialiseren met de standaardwaarde van het type:
int a = default;
Parameterloze constructor van een waardetype
Voor een waardetype produceert de impliciete constructor zonder parameters ook de standaardwaarde van het type, zoals in het volgende voorbeeld wordt weergegeven:
var n = new System.Numerics.Complex();
Console.WriteLine(n); // output: (0, 0)
Als het System.Type exemplaar tijdens runtime een waardetype vertegenwoordigt, kunt u de Activator.CreateInstance(Type) methode gebruiken om de parameterloze constructor aan te roepen om de standaardwaarde van het type te verkrijgen.
Notitie
In C# 10 en hoger kan een structuurtype (een waardetype ) een expliciete parameterloze constructor hebben die een niet-standaardwaarde van het type kan produceren. Daarom raden we u aan de default
operator of de default
letterlijke waarde te gebruiken om de standaardwaarde van een type te produceren.
C#-taalspecificatie
Zie de volgende secties van de C#-taalspecificatie voor meer informatie:
- Standaardwaarden
- Standaardconstructors
- C# 10 - Parameterloze struct constructors
- C# 11 - Automatische standaardstructs