C# ??運算符
為進(jìn)一步減少處理可空類型所需的代碼量,使可空變量的處理變得更簡單,可以使用??運算符。這個運算符稱為空接合運算符(null coalescing operator),是一個二元運算符,允許給可能等于null的表達(dá)式提供另一個值。如果第一個操作數(shù)不是null,該運算符就等于第一個操作數(shù),否則,該運算符就等于第二個操作數(shù)。下面的兩個表達(dá)式的作用是相同的:
opl ?? op2
opl == null ? op2 : opl
在這兩行代碼中,opl可以是任意可空表達(dá)式,包括引用類型和更重要的可空類型。因此,如果可空類型是null,就可以使用??運算符提供要使用的默認(rèn)值,如下所示:
int? opl = null;
int result = opl * 2 ?? 5;
在這個示例中,opl是null,所以opl*2也是null。但是,??運算符檢測到這個情況,并把值5賦予result。這里要特別注意,在結(jié)果中放入int類型的變量result不需要顯式轉(zhuǎn)換。??運算符會自動處理這個轉(zhuǎn)換。還可以把??表達(dá)式的結(jié)果傳入int?中:
int? result = opl * 2 ?? 5;
在處理可空變量時,??運算符有許多用途,它也是一種提供默認(rèn)值的便捷方式,不需要使用if結(jié)構(gòu)中的代碼塊或容易引起混淆的三元運算符。
點擊加載更多評論>>