可空值类型

1、可空值类型(System.Nullable<T>  where T: struct )

2、System.Nullable与 int,double平级,为.NET中的“一级公民”

3、Int32 ?      <=>  Nullable<Int32>

4、Nullable<T>类型值与各种操作符进行运算,如果 Nullable<T>为Null,则 结果为 Null

    特殊: "&" : Null & False -> False , Null & True -> Null

         "|" : Null | False ->Null  ,  Null | True ->True

5、如果 T 重载了操作符,那么System.Nullable<T>可以直接使用。

6、空结合操作符 "??"  

      int? b=null

      int  x=b ?? 110   如果b为Null,返回110。否则返回b;

7、装箱 :当对System.Nullable<T>进行装箱的时候,CLR会检查它是否为Null.

       ①如果为Null,不进行装箱。

       ②如果为Null,取值、装箱。

8、拆箱 :可把System.Nullable<T>拆箱为System.Nullable<T> 或者 T  

9、System.Nullable<T>对象调用GetType()方法时候,返回T的类型。并不是返回System.Nullable<T>

10、虽然System.Nullable<int>并没有实现IComparable接口,但是可以像实现了IComparable接口一样操作,因为int实现了该接口。其他接口类似。

 

原文地址:https://www.cnblogs.com/XiaoqiangNiu/p/3666489.html