可以通過如下兩種方式聲明可為空的類型:
System.Nullable<T> variable;
T?variable;
eg:
int值是-2,147,483,648 到 2,147,483,647 ,默認值是 0,不包含null值。
(1):int? aa = null;int類型不能為null,通過"不能為null的數據類型?"可以處理為null。語法 int? 是 Nullable<int> 的簡寫,其中int是值類型。 這兩種形式是可互換的。
(2):System.Nullable<int> result = null;int類型不能為null,通過"System.Nullable<不能為null的數據類型>"可以處理為null。
使用 Nullable<不能為null的數據類型>.GetValueOrDefault 方法可返回分配的值或基礎類型的默認值(如果值為 null 的話)。
eg:int? i = null;int j = i.GetValueOrDefault();返回變量i的默認值。
使用 HasValue 和 Value 只讀屬性可測試對象是否存在 null 值並檢索值。
eg: int? x = null;int j = x.GetValueOrDefault();if (x.HasValue) j = x.Value;else j = 111;最后輸出結果111。
補充:對象名后加?和??的區別:
1,?:只能用於值類型,值類型后加1個?表示此類型為可空類型。
2,??:可用於值類型和引用類型中,值類型或引用類型后加2個?表示:如果對象名取值為null,就選擇后面那個值。eg:int?x=null;int y=x??-1;最后輸出-1。
