可以通過如下兩種方式聲明可為空的類型:System.Nullable<T> variable;T?variable;eg: int值是-2,147,483,648 到 2,147,483,647 ,預設值是 0,不包含null值。(1):int? aa = null;int類型不能為null,通過" ...
可以通過如下兩種方式聲明可為空的類型:
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。