Výchozí hodnoty typů jazyka C# (referenční dokumentace jazyka C#)
V následující tabulce jsou uvedeny výchozí hodnoty typů jazyka C#:
Typ | Výchozí hodnota |
---|---|
Libovolný typ odkazu | null |
Libovolný integrovaný celočíselný typ | 0 (nula) |
Libovolný předdefinovaný číselný typ s plovoucí desetinou čárkou | 0 (nula) |
bool | false |
char | '\0' (U+0000) |
Výčtu | Hodnota vytvořená výrazem (E)0 , kde E je identifikátor výčtu. |
Struct | Hodnota vytvořená nastavením všech polí typu hodnoty na výchozí hodnoty a všechna pole typu odkazu na null . |
Libovolný typ hodnoty s možnou hodnotou null | Instance, pro kterou HasValue je false vlastnost a Value vlastnost není definována. Tato výchozí hodnota se také označuje jako hodnota null typu hodnoty s možnou hodnotou null. |
Výchozí výrazy hodnot
Pomocí operátorudefault
vytvořte výchozí hodnotu typu, jak ukazuje následující příklad:
int a = default(int);
Literál můžete použít default
k inicializaci proměnné s výchozí hodnotou jeho typu:
int a = default;
Konstruktor bez parametrů typu hodnoty
U typu hodnoty vytvoří implicitní konstruktor bez parametrů výchozí hodnotu typu, jak ukazuje následující příklad:
var n = new System.Numerics.Complex();
Console.WriteLine(n); // output: (0, 0)
Pokud System.Type instance za běhu představuje typ hodnoty, můžete použít metodu Activator.CreateInstance(Type) k vyvolání konstruktoru bez parametrů k získání výchozí hodnoty typu.
Poznámka
V jazyce C# 10 a novějším může mít typ struktury (což je typ hodnoty) explicitní konstruktor bez parametrů , který může vytvořit výchozí hodnotu typu. Proto doporučujeme použít default
operátor nebo default
literál k vytvoření výchozí hodnoty typu.
specifikace jazyka C#
Další informace najdete v následujících částech specifikace jazyka C#:
- Výchozí hodnoty
- Výchozí konstruktory\
- C# 10 – konstruktory struktury bez parametrů
- C# 11 – automatické výchozí struktury