C# - 可空类型
值类型必须包含一个值,引用类型可为空。有时让值类型为空很有用,比如处理数据库时,泛型使用System.Nullable<T>提供了使值为空的一种方式。
如Sytem.Nullable<int> nullableInt;
可以通过nullableInt == null或者nullableInt.HasValue()来判断是否变量为空。
int? nullableInt;与上面定义等价。
int? op1 = 5;
int result = op1*5; //这句编译会出错
int? result = op1*5; int result = (int)op1*5; int result = op1.Value * 5; 都可以正常工作。
int? op1 = null;
int? op2 = 5;
int? result = op1*op2;
当运算等式中的一个或者两个值是null时,除了bool?之外的所有简单可空类型,结果为null。
??空结合运算符
op1??op2 与 op1==null??op2:op1等价,即如果第一个操作数不为空,该运算符就等于第一个操作数,否则,该运算符就等于第二个操作数。