值类型后面加问号

看下面代码:

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;





你可能感兴趣的:(c#)