一、含義:
可以為null的型別,表示為該值在該型別範圍中,還可以取null值。
比如:int值是-2,147,483,648 到 2,147,483,647 ,預設值是 0,不包含null值,但是int? a=null;就包含null值。
二、宣告格式:
可以通過如下兩種方式申明可為空的型別:
system.nullablevariable;
t?variable;
t
是可以為 null 的型別的基礎型別。t
可以是包括struct
在內的任意值型別;它不能是引用型別,引用型別已經支援為null。引用型別可以設定為空,表示它未初始化。
三、特徵:
可以為 null 的型別表示可以向其賦值null
的值型別變數。
語法t?
是 nullable 的簡寫,其中t
是值型別。 這兩種形式是可互換的。
向可以為 null 的型別賦值的方法與向一般值型別賦值的方法相同,如int? x = 10;
或double? d = 4.108;
也能夠向可以為 null 的型別賦值null
:int? x = null;
。
使用 nullable.getvalueordefault 方法可返回分配的值或基礎型別的預設值(如果值為null
的話)。例如,int j = x.getvalueordefault();
使用 hasvalue 和 value 唯讀屬性可測試是否存在 null 值並檢索值,如以下示例所示:if(x.hasvalue) j = x.value;
如果變數包含值,則hasvalue
屬性返回true
;如果值為null
,則返回false
。
如果已賦值,則value
屬性返回值。 否則,將會引發 system.invalidoperationexception。
hasvalue
的預設值為false
。value
屬性沒有預設值。
還能將==
和!=
運算子與可以為 null 的型別結合使用,如以下示例所示:if (x != null) y = x;
將當前值為null
的可為 null 的型別賦值給不可為 null 的型別時,可以使用??
運算子賦予預設值,例如int? x = null; int y = x ?? -1;
不得巢狀可以為 null 的型別。 無法編譯下面的一行**:nullable> n;
注:參考
可以為空的型別
來自 http msdn.microsoft.com zh cn library aa479317.aspx 可以為空的型別 可以為空的型別實際上就是由於其他原因而非上述原因而使用的泛型。處理資料庫時面臨的挑戰之一就是正確一致地處理支援null的列。在處理字串和其他類 稱為引用型別 時,您只需為 中...
js中的null型別
null型別是第二個只有乙個值的型別,這個的特殊值是null,從邏輯角度看,null值表示乙個空物件指標,而這也正是typeof 檢測null值時會返回object的原因 var car null alert typeof car 彈出object 如果定義的變數將來用於儲存物件,那麼最好將該變數初...
C 可為null的型別
文章參考 對於資料值型的型別,以及結構型別,是不能夠賦null值的 但是在型別後面加個?或者 system nullable t 用這種方式就可以宣告這個變數是可以為null的 可以為 null 的型別是 system.nullable 結構的例項。可以為 null 的型別可以表示其基礎值型別正常範...