可空型別 int?及?相關運算子
阿新 • • 發佈:2018-12-01
int?可空型別
值型別不能為null,所以出現了int?為可空型別,此時可以為Null
int與int?不能直接進行運算,必須用顯示轉換或者int?.value才可以進行運算
int? op1 = 5; int op2 = 6; //op1不能為null,否則會報錯 int op3 = (int)op1 + op2; int op4 = op1.value+op2;
當進行乘法運算時
int? op1 = null; int? op2 = 10; //對於除bool?外所有的簡單可空型別,下述結果為null,意義為不能計算 int? op3 = op1*op2;
??空接和運算子
選取第一個不是Null的值
int? op1 = null; int result = op1*2 ?? 5; //op1位null,所以結果為5
三元運算
如果?前bool型別為true,則返回第一個值,若為false,則返回第二個值
int? a =null; int? b = 10; //此時為false,所以值為b b==null ? a : b
?.運算子
double[] a = null; int? count = a.Count(); //此時會報錯,因為a為null
為了解決上述問題,採用?.運算子即可使返回值為null
double[] a = null; //採用?.運算子,即可使得count值為null且不會報錯 int? count = a?.Count();