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();