1. 值类型的变量永远不会为null,所有需要使用System.Nullable<T>
2. 操作数是null,结构是null;==、!=操作数都为null,则返回true;<、>、<=、>= 任何一个操作数为null,则返回false。
3. 操作可空类型的速度慢于非可空类型速度。
4. ?? 不是 ?:的语法糖。
5. CLR对Nullable<T>实例进行装箱时,会检查它是否为null,如果是,则不装箱任何东西,直接返回null;如果可空实例不是null,CLR从可空实例中取出值并进行装箱,也就是说,一个值为5的Nullable<int>会装箱成值为5的已装箱int32。
6. 在Nullable<T>对象上调用GetType,CLR实际会撒谎数类型时T,而不是Nullable<T>