【C#】NULL条件演算子について
し、し、知らなかった。
C#6.0以降、null条件演算子なるものがあったってことを・・・。
事の発端
github内のソースを見ていて、ふと目にとまったコードがありました。
こんな風に書かれている箇所がありまして。
これ、なんぞや?と思ってググってみたのです。
まぁ見た感じ、nullチェックなんじゃなかろーかと思って「C# nullチェック」と
検索窓に入れてみたのですよ。
そしたら、
こーんなステキな検索候補が出てくるじゃありませんか!
NULL条件演算子
さっそく「C# nullチェック 演算子」でググッた結果の一番上の記事(安直w)をオープン!そこは私のバイブル「@IT」の記事でした。
よーするに、オブジェクトのメソッドやフィールドにアクセスする際のnullチェックを、「オブジェクト名+?」で簡略化できるよってことらしいです。
今までの書き方@自分
自分、不器用なんで。
今まで、こんな風に書いてました。
これでも間違いではないのです、古い書き方だけど。(三項演算子というらしい)
若かりしころ、こんなコードを書いちゃう自分カッコ良くね?
なんてコッパズカシイことを思っていたものです。
ほんとに若かりしころの話ね。ほんとにほんとね。
ところが@IT様の記事によると、これはスレッドセーフではないと。
val!=nullでnullチェックをした時にはOKだったかもしれないが、ToString()する時点でnullになっているかも知れないと。
そりゃそうだ。むしろとっとと気づけ自分。
それと比較して、null条件演算子はスレッドセーフであるため安全ですし、コードがかなり簡略化できるので非常に使い勝手が良いです。
結論
↑↑↑ ぜひ遊んでみてください!↑↑↑