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 | Wartość domyślna |
|---|---|
| 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 nullwartość . |
| Dowolny typ wartości dopuszczalnej 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 null. |
Wyrażenia wartości domyślnej
default Użyj operatora, aby wygenerować wartość domyślną typu, jak pokazano w poniższym przykładzie:
int a = default(int);
Począwszy od języka C# 7.1, 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
Dla 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 wygenerować 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#: