可以为 null 的类型是 System.Nullable<T> 结构体的实例。可以为null的类型可以表示一个基础类型的所有值 T ,还可再表示一个 null 值。T 不能是引用类型,因为引用类型本身就可以为null。
Nullable<int> x = 1;
int? y = 2;
- 语法 T? 是 Nullable<T> 的简写
- 使用 Nullable<T>.HasValue 和 Nullable<T>.Value 属性可测试是否存在 null 值并检索值。如果 HasValue 返回 true,则变量包含值,并可通过 Value 访问,若 HasValue 返回 false,则变量值为 null
- T? 默认值的 HasValue 属性返回 false
从可以为null的值类型转换为基础类型
使用运算符 ??
int? c = null;
//如果c为null,则d为-1,否则d = c
int d = c ?? -1;
不要使用强制类型转换的方式!运行时假如可为null 的值恰好为null,将引发异常
网友评论