C#6.0 Null条件演算子?[ ?.

VS2015を使用するにあたって、C#6.0を意識する必要性が出てきました。 Swift部会の誰かさんに言わせれば「知識・技能の先行投資」というわけです。  コードリーディングでコストが掛かるので現段階では否定的な空気感ですが忘却する前にメモる。  

<<Null条件演算子>>  

旧記述

List<string> listStrs = null;
public void myAction(){
   if(listStrs != null)  listStrs.Add("Hoge Hoge");
}

新記述

List<string> listStrs = null;
public void myAction(){
   listStrs?.Add("Hoge Hoge");
}

使用例 Null演算子??と組み合わせると有用かも?
でも?が??多いので可読性落ちてない?

public void testNullConditionalOperators()
{
   List<string> str = null;

   str?.Add ("testNull");
   //strがnullなら文字列"null"を代入
   var c = str?[0] ?? "null";
   Console.WriteLine ("{0}",c);
   //文字列表示 "null"

   str = new List<string> ();
   //strはnull以外なので文字列追加
   str?.Add ("test00");
   var cc = str?[0] ?? "null";
   Console.WriteLine ("{0}",cc);
   //文字列表示 "test00"
}

delegate型のオブジェクトはobject?.Invoke()で安全に実行できるようです。 次の機会に・・・・・・。