我们定义一个可为空的的int 变量。用ilspy 查看一下IL代码,看看生成什么东西:
int? i = 0;
居然是泛型类型的变量。现在去docs.microsoft.com看看Nullable<T>是什么。
Nullable<T> 结构
public struct Nullable<T> where T : struct
Object > ValueType> Nullable<T>
ValueType 是所有值类型的的基类
Nullable<T>可以简写为T? 表示可谓空的值类型