c#除了有?:這個三元運算子以外
還有兩個問號??運算子叫做空合併運算子,用來判斷null值取空非常方便
string c = a ?? b ; a是值型別string,如果a是null,那麼c=b,否則c=a。
這樣就會有新的需求,如果a是乙個物件(引用型別),a有name欄位,我們需要在a不是null的時候獲取a.name,否則獲取b
(如果a是null,直接獲取a.name會報錯)
平時我們會這樣寫
string result="";
if(a==null)else
這是c#提供了?.這種寫法來簡化, a?.name這種寫法可以在a是null的時候不再進行後續操作
string result=a?.name??b;
c 空合併運算子「 」的使用詳解
在c 中 為空合併運算子,用於定義可空型別和引用型別的預設值。1 如果此運算子的左運算元不為 null,則此運算子將返回左運算元 否則返回右運算元。例 a?b,當a為程式設計客棧null時則返回b,a不為空時返回a本身。2 右運算元型別必須與左運算元型別相同,或者可以隱程式設計客棧式的轉換為左運算元...
C 的可空型別和合併運算子
c 提供了乙個特殊的資料型別,nullable型別,可空型別可以表示其基礎值型別正常範圍內的值,再加上乙個null值。在處理資料庫和其他包含可能未賦值的元素的資料型別時,將nul賦值給數值型別或布林型的功能特別有用。可以將bool型賦值未定義。宣告乙個nullable型別 null 例如 using...
可空型別修飾符與空合併運算子
可以讓乙個值型別賦值為null,例如給乙個struct賦值為null或判斷乙個struct是否被賦過值 if m teststruct null 單問號 宣告該值型別為可空型別 宣告乙個可空型別有以下三種方式 int a null int b newint?nullable int c newnul...