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

C# ??運算符

提問人:劉團圓發(fā)布時間:2020-12-07

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

    opl ?? op2

    opl == null ? op2 : opl

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

    int? opl = null;

    int result = opl * 2 ?? 5;

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

    int? result = opl * 2 ?? 5;

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

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

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