Значения по умолчанию типов C# (справка по C#)Default values of C# types (C# reference)

В следующей таблице показаны значения по умолчанию для типов C#:The following table shows the default values of C# types:

TypeType Значение по умолчаниюDefault value
любой ссылочный тип;Any reference type null
Любой встроенный целочисленный типAny built-in integral numeric type Ноль (0)0 (zero)
Любой встроенный тип с плавающей запятойAny built-in floating-point numeric type Ноль (0)0 (zero)
boolbool false
charchar '\0' (U+0000)'\0' (U+0000)
enumenum Значение, создаваемое выражением (E)0, где E — это идентификатор перечисления.The value produced by the expression (E)0, where E is the enum identifier.
structstruct Значение, создаваемое путем установки значений по умолчанию для всех полей с типами значений и значений null для всех полей ссылочного типа.The value produced by setting all value-type fields to their default values and all reference-type fields to null.
Любой тип значения, допускающий значение NULLAny nullable value type Экземпляр, свойство false которого имеет значение HasValue, а свойство Value не определено.An instance for which the HasValue property is false and the Value property is undefined. Это значение по умолчанию также называется значением NULL типа значения, допускающего значение NULL.That default value is also known as the null value of a nullable value type.

Используйте оператор default, чтобы получить значение по умолчанию для типа, как показано в следующем примере:Use the default operator to produce the default value of a type, as the following example shows:

int a = default(int);

Начиная с C# 7.1 вы можете использовать литерал default для инициализации переменной со значением по умолчанию для ее типа:Beginning with C# 7.1, you can use the default literal to initialize a variable with the default value of its type:

int a = default;

Для типа значения неявный конструктор без параметров также создает значение по умолчанию для типа, как показано в следующем примере:For a value type, the implicit parameterless constructor also produces the default value of the type, as the following example shows:

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

Если экземпляр System.Type представляет тип значения, во время выполнения можно использовать метод Activator.CreateInstance(Type), чтобы вызвать конструктор без параметров и получить значение типа по умолчанию.At run time, if the System.Type instance represents a value type, you can use the Activator.CreateInstance(Type) method to invoke the parameterless constructor to obtain the default value of the type.

Спецификация языка C#C# language specification

Дополнительные сведения см. в следующих разделах статьи Спецификация языка C#:For more information, see the following sections of the C# language specification:

См. такжеSee also