c 空接合 運算子的運用

2022-04-09 08:57:47 字數 848 閱讀 9746

相信很多人都看到??運算子,但是不一定每個人都知道它是用來做什麼的,之前我也看到過很多次,但是因為一直沒有去用過,所以也沒有了解他的作用,今天又看到了,所以查了的msdn,原來??運算子叫做空接合運算子,作用是,要判斷乙個物件是否為null,如果為null那麼給賦於乙個預設的值,做法相當的麻煩.例如:

int? isobject = null;

if(isobject==null)

每次都要進行判斷!!

當然以上舉的只不過是乙個簡單的例子,有人會想,int型的本來就不會為null,因為其本身有乙個預設的值為0.我在這裡要說明一下的是,這裡舉的只是乙個例子而己!而且int?代表了變數isobject是可為空的!所以當我賦與乙個null時,isobject並不是為0,而是為null.

每次的判斷都要用乙個if語句,相當的麻煩,現在用了空接合,**如下:

isobject = isobject??0;

空接合運算子(??)為處理可空型別和引用型別時表示null值的可能性提供了乙個快捷方式,這個運算子放在兩個運算元之間,第乙個運算元必須是乙個可空型別或引用類,第二個運算元必須與第乙個運算元的型別相同,或者可以隱含地轉換為第乙個運算元的型別.

空接合運算子的計算如下:

如果第乙個運算元不為null,則整個表示式就等於每乙個運算元,但如果第乙個運算元為null,則整個表示式就是等於第二個運算元的值.例如:

int? a= null;

int b;

b= a??10; //b has the value 10

a=3;

b= a??10; //b has the value 3

如果第二個運算元不能隱含地轉換為第乙個運算元的型別,就生成乙個編譯錯誤.

C 可空型別和空接合運算子

隨手翻閱c 高階程式設計時,看到可空型別和運算子這一節,又發現了自己的乙個c 知識盲點。可空型別 可空型別只能用於值型別,不能用於引用型別,引用型別本身支援null值。如果直接把null賦值給int類 型,會出現乙個錯誤 無法將 null 轉換成 int 因為它是一種值型別 賦值時應該使用 int?...

空接合運算子, 可空型別和運算子,typeof

空接合運算子空接合運算子 提供了一種快捷方式,可以在處理可空型別和引用型別時表示null值。這個運算子放在兩個運算元之間,第乙個運算元必須是乙個可空型別或引用型別,第二個運算元必須與第乙個運算元的型別相同,或者可以隱含地轉換為第乙個運算元的型別。空接合運算子的計算如下 如果第乙個運算元不是null,...

空接合運算子, 可空型別和運算子,typeof

空接合運算子空接合運算子 提供了一種快捷方式,可以在處理可空型別和引用型別時表示null值。這個運算子放在兩個運算元之間,第乙個運算元必須是乙個可空型別或引用型別,第二個運算元必須與第乙個運算元的型別相同,或者可以隱含地轉換為第乙個運算元的型別。空接合運算子的計算如下 如果第乙個運算元不是null,...