1) 在與1元或二元運算子一起使用時,如果其中乙個運算元為null或兩個均null,則結果為null。
如:複製** **如下:
int? a = null;
int? b = a+3;
則b為null
2) 比較可空型別時,只要有乙個運算元為null,結果就為false
如:程式設計客棧
複製** **如下:
int? a = null;
int? b = 8;
(a>=b)將返回false
而正是因為null的可能性,所以不能隨意比較乙個可空型別和乙個非可空型別。
3) 空接合運算子
空接合運算子」??程式設計客棧;」為處理可空型別和引用類程式設計客棧型時表示null值的可能性提供了一種快捷方式,或許我們不用總寫if(xx!=null)。有點類似三元運算子」?:」,如果」??」前面乙個數(第乙個數必需為可空或引用型別)不是null,則表示式的值就為第乙個運算元的值,如果第乙個運算元為null,表示式的值則為第二個表示式的值。
如:複製** **如下:
int? a= null;
int defaut = 101程式設計客棧0;
int b;
b=a??defaut;//此時b取defaut的值
a = 8;
b=a??defaut;//此時b取a的值
當然,這裡第二個數應該是與第乙個數型別相同或者能隱式轉化為第乙個數的。
ps:無法建立基於引用型別的可空型別,因為引用型別已支援 null程式設計客棧 值。
本文標題: c#中關於可空型別的小知識
本文位址:
C 中可空型別
c 提供了乙個特殊的資料型別,nullable 型別 可空型別 可空型別可以表示其基礎值型別正常範圍內的值,再加上乙個 null 值。例如,nullable int32 讀作 可空的 int32 可以被賦值為 2,147,483,648 到 2,147,483,647 之間的任意值,也可以被賦值為 ...
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...