位置:首頁(yè) > 軟件操作教程 > 編程開發(fā) > C# > 問題詳情

C# ??運(yùn)算符

提問人:劉團(tuán)圓發(fā)布時(shí)間:2020-12-07

    為進(jìn)一步減少處理可空類型所需的代碼量,使可空變量的處理變得更簡(jiǎn)單,可以使用??運(yùn)算符。這個(gè)運(yùn)算符稱為空接合運(yùn)算符(null coalescing operator),是一個(gè)二元運(yùn)算符,允許給可能等于null的表達(dá)式提供另一個(gè)值。如果第一個(gè)操作數(shù)不是null,該運(yùn)算符就等于第一個(gè)操作數(shù),否則,該運(yùn)算符就等于第二個(gè)操作數(shù)。下面的兩個(gè)表達(dá)式的作用是相同的:

    opl ?? op2

    opl == null ? op2 : opl

    在這兩行代碼中,opl可以是任意可空表達(dá)式,包括引用類型和更重要的可空類型。因此,如果可空類型是null,就可以使用??運(yùn)算符提供要使用的默認(rèn)值,如下所示:

    int? opl = null;

    int result = opl * 2 ?? 5;

    在這個(gè)示例中,opl是null,所以opl*2也是null。但是,??運(yùn)算符檢測(cè)到這個(gè)情況,并把值5賦予result。這里要特別注意,在結(jié)果中放入int類型的變量result不需要顯式轉(zhuǎn)換。??運(yùn)算符會(huì)自動(dòng)處理這個(gè)轉(zhuǎn)換。還可以把??表達(dá)式的結(jié)果傳入int?中:

    int? result = opl * 2 ?? 5;

    在處理可空變量時(shí),??運(yùn)算符有許多用途,它也是一種提供默認(rèn)值的便捷方式,不需要使用if結(jié)構(gòu)中的代碼塊或容易引起混淆的三元運(yùn)算符。

繼續(xù)查找其他問題的答案?

相關(guān)視頻回答
回復(fù)(0)
返回頂部