【君には読めるか?】??×?の合わせ技

C#

今回はC#における【?】の合わせ技について説明する
さっそくだが、これが読めるだろうか


if(Model.userList?.Any() ?? false){
// ...処理など
} 

どうだろうか?さっと読めたなら、この先は読まなくていい。
ちなみに筆者は『あれ?』となった。

というわけで、答えに行く前に、まずは自分なりに考えてみてほしい。

スポンサードサーチ

?を解説していく

ということで、?や??について解説する。

  • ??…合体演算子
    ・左側がnullでないなら、左側で評価
    ・左側がnullなら、右側で評価
  • ?…条件演算子
    ・?手前のプロパティがnullでないなら、Any()まで評価・実行
    ・?手前のプロパティnullならnullを返す

というわけで、先程のコードの内容は、

①Model.userListがあればAny()で評価し、データがあればif分の中を処理する

②Model.userListがnullなら、??の右側であるfalseが評価され、if分の中には入らない

と言う仕組みになっている

まとめ

というわけで、今回は?の合体演算子と条件演算子について説明した。
合わせ技になると、?になる人は是非この解説を覚えていてほしい。

その他勉強になるプログラミング記事:
>>C#系の記事