看下面代码:
public int? _num;
我们都知道引用类型可以空,比如:
string str = null;
但如果你讲值类型赋为空
int Number = null;
此时编译器会报错,此时如果你在类型加上?
int? Number = null;
此时错误消失,表示Number可以赋为空。
所以值类型后面加问号表示可为空Null(Nullable结构)
Nullable是.NET 2.0中新提供的一种用于标明一个值类型是否可以为空的技术。
可以使用GetValueOrDefault获取值,如果为空返回值类型默认值
int? Number =null;
int t= Number.GetValueOrDefault();
通过HasValue判断是否有值
bool have = Number.HasValue;