かなり出遅れた感がありますが、
最近、やっとこ自宅で C#6.0を触り始めました。
その中で、面白いなと感じたのが「Null 条件演算子」
C# - The New and Improved C# 6.0
これを使う事で、「null か否か評価して、null以外の場合はあるメソッドを呼んで、nullの場合は null を返す。」
みたいな処理をする場合に一発で書けるのは面白い。
例えば、↓のような感じのコード
if (null == value) { return null; } else { return value.ToUpper(); }
これが、↓のようになります。
return value?.ToUpper();
なかなか、素敵なものだと思います。。。
この式は、 value 値が null の場合は、そのまま null を返却し、
not null の場合は、後続の処理を呼び出してゆくと。
また、三項演算子との組み合わせで、
↓のように書くことも可能となります。
// GetItems は List<T> を返す。 return GetItems()?.Count ?? 0;
いいですね。オブジェクトが存在しない場合でも 0 が返ってくるようなイメージです。
ついでですが、インデクサでもかけちゃいます。
List<int> a = null; a?.Add(0); var b = a?[0];
このコード。毒にも薬にもならんコードですが、
前述したとおり、実行時例外は発生しません。
ますます、実装時のパフォーマンスが上がることは請け合いです。
と、自社で使っているコーディング規約にも、この旨を追記する必要がありそうです。(使う使わないは別として)