值型別本來是有預設值的,初始化時不能賦值為null,否則編譯時會報錯.net 2.0以後增加了可空型別。
int? a,float? b,double? c, datetime? d,bool? e為可空型別,
此時a=null,不會報錯。判斷時也可以用if(a==null)進行判斷。
宣告可空型別的兩種方式:
int ? a,
nullablea,
判斷是否為空時,可用if(a.hasvalue)或(a==null)判斷。
??使用,判斷變數是否為空,相當於三元運算子:
string result=(obj??"123").tostring();//如果obj為null則返回123
獲取可空型別的原始型別方法:type.getgenericarguments()[0]
例如:if(type.getgenericarguments()[0]==typeof(int))
C 可空型別
可空型別只能用於值型別,不能用於引用型別,引用型別本身支援null值。如果直接把null賦值給int型別,會出現乙個錯誤 無法將 null 轉換成 int 因為它是一種值型別 賦值時應該使用 int?a null 可空型別與一元或二元運算子一起使用是,如果乙個運算元或兩個運算元都是null,其結果為...
C 可空型別
c 提供了乙個特殊的資料型別,nullable型別 可空型別 可空型別可以表示其基礎值型別正常範圍內的值,再加上乙個 null 值。例如,nullable int32 讀作 可空的 int32 可以被賦值為 2,147,483,648 到 2,147,483,647 之間的任意值,也可以被賦值為 n...
C 可空型別
在一些情況下,這可能是乙個問題。c 有乙個解決方案 可空型別。可空型別是可以為空的值型別。可空型別只需要在型別的後面新增 在下面的 片段中,x1 是乙個普通的 int x2 是乙個可以為空的 int。因為 x2 是可以為空的 int,所以可以吧 null 分配給 x2 int x1 1 int?x2...