不能使用的对象,可以用设置其值为空null来标识。但是基本值类型是不能赋值为空的,那会导致编译错误。传统的经验解决办法是赋给其一个取值范围之外的值,如“-1”(0xFFFFFFFF),但这种方法并不标准。
C# 给出了一种完美的解决方案——可空类型(nullable type):声明值类型的变量时,在变量名后添加可空类型的问号符“?”,则该变量成为可空类型,可以被赋值为空。
在C# 中,还可以通过可空类型的共用只读属性HasValue,来判断可空类型变量是否为空。例如:
int? x = 123;
int? y = null;
if (x.HasValue) Console.WriteLine(x.Value); // 输出“123”
if (y.HasValue) Console.WriteLine(y.Value); // 无输出