2014年7月19日

VisualStudio2014の足音が聞こえてきましたが, そこでの最も大きな変更の一つであるコンパイラのRoslynへの変更.

この変更のついでに, C#が6.0になるようです.

Build2014前後のRoslynのリリースでは, その片鱗を少しだけ体験できるのでそれを紹介します.

準備

今回は, VisualStudio2014CTPが入っていることを前提とします.

また, C#6.0の新機能は, まだビルドオプションで6.0を選ぶなどの方法で呼び出すことができないので, csprojファイルを直接編集します.

具体的には,<WarningLevel>4</WarningLegel>の下に<LangVersion>experimental</LangVersion>

を追加します.

これで, 新機能を呼び出すことができます.

早速やってみる

今回実装された機能は, null伝搬.演算子の実装です.

簡単に言うと, 三項演算子(hoge ? null : 1)

を省略するものです.

MSDNのC#チームブログで紹介されているサンプルコードを以下に示します.

Console.WriteLine(args.FirstOrDefault()?.Length ?? 0);

この, ?.が, 新しい演算子となります.

意味としては, args.FirstOrDefault()の値がnullならば評価値がnull, nullでなければLenghtを返すという意味になり, この文全体では, args.FirstOrDefault()がnullならば, 左辺がnullになり, null合体演算子で0が返される.

args.FirstOrDefault()がnullでなければ, Lengthがそのまま返されるといった挙動をします.

ちなみに, この?.演算子は, 現状では, 右結合のショートサーキット有で評価されるようです.

まとめ

今回は, null関係の新しい演算子を紹介しました.

今後も新たな実装が触れるようになったら随時紹介していこうと思います.

CATEGORIES