可以通過如下兩種方式宣告可為空的型別:
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。