天天看點

可空類型 int?及?相關運算符

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