Výchozí hodnoty typů jazyka C# (Referenční příručka jazyka C#)

Následující tabulka uvádí výchozí hodnoty typů jazyka C#:

Typ Výchozí hodnota
Jakýkoli odkazový typ null
Libovolný integrovaný integrální číselný typ 0 (nula)
Jakýkoli integrovaný číselný typ s plovoucí desetinnou čárkou 0 (nula)
bool false
char '\0' (U+0000)
Výčtu Hodnota vytvořená výrazem (E)0 , kde je identifikátor E výčtu.
Struct Hodnota vytvořená nastavením všech polí typu hodnoty na výchozí hodnoty a všech polí typu odkazu na null .
Libovolný typ hodnoty s možnou hodnotou null Instance, pro kterou HasValue je vlastnost a vlastnost není false Value definována. Tato výchozí hodnota se také označuje jako hodnota null typu s možnou hodnotou null.

Výrazy výchozí hodnoty

Pomocí default operátoru vytvářete výchozí hodnotu typu, jak ukazuje následující příklad:

int a = default(int);

Počínaje jazykem C# 7.1 default můžete pomocí literálu inicializovat proměnnou s výchozí hodnotou jejího typu:

int a = default;

Konstruktor bez parametrů typu hodnoty

Pro typ hodnoty vytvoří implicitní konstruktor bez parametrů také výchozí hodnotu typu, jak ukazuje následující příklad:

var n = new System.Numerics.Complex();
Console.WriteLine(n);  // output: (0, 0)

Pokud instance za běhu představuje typ hodnoty, můžete pomocí metody vyvolat konstruktor bez parametrů a získat tak výchozí hodnotu System.Type Activator.CreateInstance(Type) typu.

Poznámka

V jazyce C# 10 a novějších verzích může mít typ struktury (což je typ hodnoty) explicitní konstruktor bez parametrů, který může vytvořit nevýpočetní hodnotu typu. Proto doporučujeme použít operátor default 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#:

Viz také