C#語法知識(shí)點(diǎn)1:?的用法
2021-09-13 11:00 作者:技術(shù)龍的傳人 | 我要投稿
????在C#中問號(hào)有單問號(hào)和雙問號(hào)兩種場(chǎng)景,其中單問號(hào)就是用于條件表達(dá)式的一個(gè)三元運(yùn)算符;雙問號(hào)有兩個(gè)用法:可空類型修飾符和空合并運(yùn)算符。
(1)條件表達(dá)式三元運(yùn)算符:如x>y?a:b,即當(dāng)x>y時(shí)表達(dá)式取值a,否則取值b;
c = x > y ? a : b;
//等價(jià)于
if
(x > y) {
????
c = a;
}
else
{
????
c = b;
}
(2)可空類型修飾符:int、bool等值類型不能賦值為null(空引用),為了使值類型也能賦值為空引用以表示不存在的值,引入了System.Nullable<T>(T為值類型),縮寫即為T?,如int?表示System.Nullable<int>;
int
? x =
null
;
//可空類型默認(rèn)值都是null,而值類型如int默認(rèn)值為0、bool默認(rèn)值為false等
bool
? result =
true
;
/*
????
當(dāng)x為null且被引用時(shí)會(huì)引發(fā)“可為空的對(duì)象必須具有一個(gè)值”異常
????
可空類型被引用或參與運(yùn)算時(shí),會(huì)調(diào)用Value屬性,當(dāng)可空類型未被賦值時(shí)即會(huì)引發(fā)此異常
*/
int
y = x + 1;
x = 1;
y = x.Value;
//將可空類型賦值給值類型時(shí),使用Value屬性
(3)空合并運(yùn)算符:用于定義可空類型和引用類型的默認(rèn)值,是右結(jié)合性運(yùn)算符;
int
y = x ?? 0;
//當(dāng)x為null時(shí)y取值0,否則取值x.Value,此運(yùn)算符可簡化可空類型null判斷
int
y =
null
== x ? 0 : x.Value;
//與以上語句等價(jià)
標(biāo)簽: