上一篇: C# 方法
下一篇: C# 数组(Array)
C# 可空类型
在 C# 中,值类型(如 int
, double
, bool
等)默认情况下不允许包含 null
值。然而,在某些情况下,您可能希望表示一个值类型没有被赋予具体的值。为了解决这个问题,C# 引入了可空类型(Nullable Types),它允许值类型变量接受 null
值。本教程将向您介绍如何在 C#
中使用可空类型。
定义可空类型
要定义一个可空类型变量,您可以在对应的值类型后面添加问号 ?
进行声明。例如:
int? nullableInt; double? nullableDouble; bool? nullableBool;
也可以通过显式地使用 Nullable<T>
结构来创建可空类型,其中 T
是相应的值类型。
Nullable<int> nullableInt; Nullable<double> nullableDouble; Nullable<bool> nullableBool;
现在,您可以将 null
赋给这些变量:
nullableInt = null; nullableDouble = null; nullableBool = null;
访问可空类型的值
当您需要访问可空类型变量的值时,可以使用 Value
或 GetValueOrDefault()
方法。但在访问之前,通常需要检查该变量是否为空(即包含
null
值),以避免引发异常。您可以使用 HasValue
属性来判断一个可空类型变量是否有值。
int? nullableInt = 42; if (nullableInt.HasValue) { Console.WriteLine("The value of nullableInt is: " + nullableInt.Value); } else { Console.WriteLine("nullableInt has no value."); }
如果没有检查 HasValue
,直接访问 Value
属性将抛出 InvalidOperationException
异常。为了避免这种情况,还可以考虑使用
GetValueOrDefault()
方法:
int? nullableInt = null; int defaultValue = -1; Console.WriteLine("The value of nullableInt is: " + nullableInt.GetValueOrDefault(defaultValue));
在上面的代码中,GetValueOrDefault()
方法返回可空类型变量的值(如果存在),否则返回指定的默认值。
使用 null 合并运算符
null 合并运算符(??
)是一种简洁的方式,用于在可空类型变量具有非空值时返回其值,否则返回一个默认值。以下是如何使用 null 合并运算符的示例:
int? nullableInt = null; int defaultValue = -1; int result = nullableInt ?? defaultValue; Console.WriteLine("The value of nullableInt is: " + result); // 输出: The value of nullableInt is: -1
在这个例子中,因为 nullableInt
为 null
,null 合并运算符返回了 defaultValue
。
现在,您已经了解了 C# 中可空类型的基本知识,包括如何定义可空类型、访问它们的值以及使用 null合并运算符。使用可空类型时,务必注意检查变量是否包含值,以避免出现运行时错误。在编写代码时,合理利用可空类型可以增强代码的健壮性和可读性。