Wartości domyślne typów języka C# (referencja C#)
W poniższej tabeli przedstawiono wartości domyślne typów języka C#:
Typ | Wartość domyślna |
---|---|
Dowolny typ odwołania | null |
Każdy wbudowany typ liczbowy | 0 (zero) |
Dowolny wbudowany typ liczb zmiennoprzecinkowych | 0 (zero) |
typ logiczny | false |
char |
'\0' (U+0000) |
enumeracja | Wartość wygenerowana przez wyrażenie (E)0 , gdzie E jest identyfikatorem wyliczenia. |
struktura | Wartość wygenerowana przez ustawienie wszystkich pól typu wartości na wartości domyślne i wszystkie pola typu odwołania na wartość null . |
Dowolny typ wartości dopuszczający null | Wystąpienie, dla którego właściwość HasValue jest false , a właściwość Value jest niezdefiniowana. Ta wartość domyślna jest również znana jako wartość null typu wartości dopuszczanej do wartości null. |
Wyrażenia wartości domyślnej
Użyj operatora default
, aby utworzyć wartość domyślną typu, jak pokazano w poniższym przykładzie:
int a = default(int);
Aby zainicjować zmienną jej domyślną wartością typu, można użyć literału default
:
int a = default;
Konstruktor bezparametrowy typu wartościowego
W przypadku typu wartości niejawny konstruktor bez parametrów generuje również wartość domyślną typu, jak pokazano w poniższym przykładzie:
var n = new System.Numerics.Complex();
Console.WriteLine(n); // output: (0, 0)
W czasie wykonywania, jeśli wystąpienie System.Type reprezentuje typ wartości, możesz użyć metody Activator.CreateInstance(Type), aby wywołać konstruktor bez parametrów, aby uzyskać wartość domyślną typu.
Notatka
Typ struktury (który jest typem wartości) może mieć jawny konstruktor bez parametrów, który może tworzyć wartość innego typu niż domyślna. W związku z tym zalecamy użycie operatora default
lub literału default
w celu wygenerowania wartości domyślnej typu.
Specyfikacja języka C#
Aby uzyskać więcej informacji, zobacz następujące sekcje specyfikacji języka C#:
- wartości domyślne
- domyślne konstruktory
- Konstruktory struktur bez parametrów
- C# 11 — automatyczne domyślne struktury