C NULL條件運算子

2022-07-07 05:51:11 字數 1704 閱讀 8678

c#6.0新增的特性 null條件運算子 ?.

之前我們在需要判斷某個物件是否為空的是這樣的

person per = null

;

if (per != null

)

如果我們不這樣判斷的話,那麼你就會得到乙個 system.nullreferenceexception

錯誤,

當然你也可以使用三元運算子

string str=person == null ? null :person.name 

但是在c#6.0的時候推出 null條件運算子,這樣就使我們少寫了很多**,增加了我們很多的工作效率

?. null條件運算子

person per = null

;

string name = per?.name;

如果我們這樣寫的話,同樣也可以判斷是否為空,代替了if的判斷和簡化了三元運算子的操作

例子:我們嘗試一下,在乙個集合中

listperson = new list()

,new person,

new person,

new person,

};

我們需要查詢姓是李的人,如果我們不使用null條件運算子,結果是..

不出意料,因為name中存在null值,所以得到了乙個system.nullreferenceexception 

這次我們加上null條件運算子,結果...

加上null條件運算子之後,返回型別發生了改變,變成了nullable,如果我們還需要原來的型別,只需要和空運算子一起使用就可以了

因為返回的是bool型別,那我們看一下false返回的是什麼

就會返回符合條件的值

如果為true又會返回什麼呢

我們可以清晰的可以看到,為true的時候,不僅返回符合條件的資料,同時也返回了name為空的值

?[

null運算子不但可以使用?.訪問物件的屬性和方法,還可以使用?[監測陣列或包含索引器的物件是否為空

int are = new

int[5] ;

int? value = are?.length;

int? result = are?[0];

null條件運算子返回的型別是nullable,我們不想要這樣的型別的話需要配合 ?? 空運算子使用

?? 空運算子

int are = new

int[5] ;

int value = are?.length??0

;

int result = are?[0]??0;

條件運算子

條件運算子 c提供條件表示式 conditional expression 作為表達if else語句的便捷方式,該表示式使用?條件運算子。該運算子分為兩個部分,需要三個運算物件。所以是三元運算子,也是c唯一的三元運算子 下面的 得到乙個數的絕對值 x y 0 y y 在 和 之間的內容就是條件表示...

條件運算子和逗號運算子

條件運算子 表示式1 表示式2 表示式3 運算規劃 如果表示式1為真,返回表示式2的結果,否則返回表示式3的結果 例如 a 1,b 2 a b a b 返回值為2 注意表示式是右結合的.例 a 1,b 2,c 3 a b a b?c b 相當於 a b a b?c b 返回值為3 逗號運算子 多個表...

C 條件運算子

語法 condition first expression r second expression r 說明 當 condition 為 true 時,返回 first expression r,否則返回 second expression r。有些參考書上說 等價於如下語句 if conditio...