C# 中的可空类型(Nullable Types)是指一种特殊的数据类型,可以表示一个值类型(如 int、float 等)的正常取值,也可以表示这个值类型的 null 值。在 C# 中,值类型是默认不能为 null 的,但是有时候我们需要一个值类型的变量可以为 null,这时就可以使用可空类型来表示。
使用可空类型需要在值类型的类型后面加上一个问号(?)作为修饰符,例如 int?、float? 等。当我们把一个可空类型的变量赋值为 null 时,这个变量就成为了 null 值,而不是原来的默认值。
下面是一个示例代码,展示了如何使用可空类型:
int? a = null;
int? b = 42;
Console.WriteLine(a.HasValue); // 输出 False
Console.WriteLine(b.HasValue); // 输出 True
Console.WriteLine(a.GetValueOrDefault()); // 输出 0
Console.WriteLine(b.Value); // 输出 42
在这个示例中,我们声明了两个可空类型的 int 变量 a 和 b,其中 a 被赋值为 null,b 被赋值为 42。我们使用 HasValue 属性来判断一个变量是否为 null,使用 GetValueOrDefault() 方法来获取一个变量的值(如果不为 null),使用 Value 属性来获取一个变量的值(如果不为 null,否则会抛出异常)。
需要注意的是,使用可空类型可能会带来一些额外的开销,因为要为每个可空类型的变量多保存一个标志位来表示这个变量是否为 null。所以在实际使用中,需要根据具体情况来判断是否使用可空类型。