C# 类型的默认值(C# 参考)

下表显示了 C# 类型的默认值:

类型 默认值
任何引用类型 null
任何内置整数数值类型 0 (零)
任何内置浮点型数值类型 0 (零)
布尔 false
字符 '\0' (U+0000)
枚举 表达式 (E)0生成的值,其中 E 是枚举标识符。
结构 通过将所有值类型字段设置为其默认值,并将所有引用类型字段设置为 null生成的值。
任何可以为 null 的值类型 HasValue 属性为 falseValue 属性未定义的实例。 该默认值也称为可空值类型的 null 值。

默认值表达式

使用 default 运算符 生成类型的默认值,如以下示例所示:

int a = default(int);

可使用 default 文本来初始化变量,使其具有其类型的默认值:

int a = default;

值类型的无参数构造函数

对于值类型,隐式 无参数构造函数也生成类型的默认值,如以下示例所示:

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

在运行时,如果 System.Type 实例表示值类型,则可以使用 Activator.CreateInstance(Type) 方法调用无参数构造函数来获取该类型的默认值。

注意

结构类型(即值类型)可能具有 显式无参数构造函数,该构造函数可能会生成该类型的非默认值。 因此,我们建议使用 default 运算符或 default 文本来生成类型的默认值。

C# 语言规范

有关详细信息,请参阅 C# 语言规范的以下部分:

另请参阅