1. HOME
  2. ブログ
  3. IT技術
  4. 【C#】nullの判定方法の色々
C# null判定方法の色々

【C#】nullの判定方法の色々

nullの判定方法のいろいろ

nullの判定方法にも色々種類がある。

実際に自分でコードを書く時に使うのは1種類でも良いが、他の記述法を知っていれば何かのときに役立つだろう。

C#を使って仕事をしているので、今回はC#の null の判定についてまとめてみた。

 hoge == null

ストレートでわかりやすい。

でもC#は演算子オーバーロードができるので、注意が必要らしいです。

演算子のオーバーロード - C# リファレンス | Microsoft Docs

(演算子にオーバーロードとかできるんだC#すごい。)

C++やpythonもできるらしい。

Object.ReferenceEquals

null判定で使ってるの見たことない。

hoge is null

C# 7.0 パターンマッチングから使えるようになった方法。

オーバーロードされていない == と同義。

一番良く見るし、一番使ってる。

hoge.HogeStr ?? ""

null合体演算子。

やってることは hoge.HogeStr == null を判定して、左か右かどちらかを返却する。

hoge.HogeStr が null なら 右の""が返却される。null じゃなければ hoge.HogeStr が返却される。

hoge?.HogeStr

null条件演算子。

hoge == null を判定して、hoge.HogeStr か null を返却する。

hoge.HogeStr が null かどうかは関係ないので、 NullReferenceException に注意。

hoge?.HogeStr ?? ""

null合体演算子とnull条件演算子の合せ技。

これがすごく使いやすくて見やすい。

hoge == null を判定して、nullじゃなければ、hoge.HogeStr == null を判定して、左か右かどちらかを返却する。

hoge が null だった場合は 右の "" が返却される。

LinqでClassのDefaultとして null が返却された時とか、いちいち if文で長々と書く必要がないのがとても良い。

if文にするとこんな感じ。

長いし、ちょっと直感的じゃない感じがする。

hoge?.HogeStr ?? "" 値あるならHogeStrだし、 null だったら "" ってぱっとわかりやすい。

書いた人はこんな人

山口(社員)
山口(社員)

関連記事

採用情報

\ あの有名サービスに参画!? /

バックエンドエンジニア

\ クリエイティブの最前線 /

フロントエンドエンジニア

\ 世界を変える…! /

Androidエンジニア

\ みんなが使うアプリを創る /

iOSエンジニア