Wartości domyślne typów języka C# (odwołanie w C#)
W poniższej tabeli przedstawiono wartości domyślne typów języka C#:
Typ | Domyślna wartość |
---|---|
Dowolny typ odwołania | null |
Dowolny wbudowany typ liczbowy całkowity | 0 (zero) |
Dowolny wbudowany typ liczbowy zmiennoprzecinkowa | 0 (zero) |
bool | false |
char | '\0' (U+0000) |
enum | Wartość wygenerowana przez wyrażenie (E)0 , gdzie E jest identyfikatorem wyliczenia. |
struct | Wartość wygenerowana przez ustawienie wszystkich pól typu wartości na wartości domyślne i wszystkie pola typu odwołania na null wartość . |
Dowolny typ wartości dopuszczanej do wartości null | Wystąpienie, dla którego HasValue właściwość jest false i Value właściwość 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
default
Użyj operatora , aby utworzyć wartość domyślną typu, jak pokazano w poniższym przykładzie:
int a = default(int);
Możesz użyć default
literału , aby zainicjować zmienną z wartością domyślną jej typu:
int a = default;
Konstruktor bez parametrów typu wartości
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 System.Type wystąpienie reprezentuje typ wartości, można użyć Activator.CreateInstance(Type) metody , aby wywołać konstruktor bez parametrów, aby uzyskać wartość domyślną typu.
Uwaga
W języku C# 10 lub nowszym typ struktury (który jest typem wartości) może mieć jawny konstruktor bez parametrów , który może generować wartość inną niż domyślna typu. W związku z tym zalecamy użycie default
operatora lub default
literału 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
- Konstruktory domyślne
- C# 10 — konstruktory struktury bez parametrów
- C# 11 — automatyczne struktury domyślne