Výchozí hodnoty typů C# (referenční dokumentace jazyka C#)
Následující tabulka uvádí výchozí hodnoty typů jazyka C#:
Type | Default value |
---|---|
Libovolný typ odkazu | null |
Libovolný integrovaný číselný typ | 0 (nula) |
Libovolný předdefinovaný číselný typ s plovoucí desetinou čárkou | 0 (nula) |
bool | false |
char | '\0' (U+0000) |
enum | Hodnota vytvořená výrazem (E)0 , kde E je identifikátor výčtu. |
struct | Hodnota vytvořená nastavením všechpolích 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átoru default
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 jejího typu:
int a = default;
Konstruktor bez parametrů typu hodnoty
U typu 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 System.Type instance představuje typ hodnoty, můžete v době běhu použít Activator.CreateInstance(Type) metodu k vyvolání konstruktoru bez parametrů k získání výchozí hodnoty typu.
Poznámka:
V jazyce C# 10 a novější může mít typ struktury (což je typ hodnoty) explicitní konstruktor bez parametrů, který může vytvořit nevýkonnou 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