リリースされてから随分経ちましたが、VS2017 Update3に更新しました。 Update3からは、C#7.1の機能が使えるようになってます。
自分はまだあまりC#7の機能を使いこなせてないですが、
7.1で色々と便利な機能も追加されているので少し使ってみました。
C#7.1の有効化
VS2017をUpdate3に更新しても、デフォルトの状態ではC#7.1は有効になっていません。
プロジェクトの設定で、以下の箇所を「C#の最新のマイナーバージョン(最新)」に変更する必要があります。
Debug/Releaseそれぞれのビルド構成で設定が必要なので注意しましょう。
サンプル
asyncなMain関数
Main関数をasyncにできるようになりました。
asyncなAPIをちょっとテストする際とかに便利になりそうです。
static async Task Main(string[] args) { Console.WriteLine("Hello World!"); await Task.Delay(1000); Console.WriteLine("1秒経過"); await Task.Delay(5000); Console.WriteLine("5秒経過"); }
タプルの改善
タプルはC#7から使えるようになりました。 C#7.1ではタプルの使い勝手が少し改善されてます。
↓のようなコードで、タプルの変数personの各要素に、Item1/Item2などの名前ではなくタプル定義時の名前でアクセスできるようになってます。
var name = "ほげほげ"; var age = 25; var person = (name, age); Console.WriteLine($"{person.name}さん {person.age}才");
.NET Framework 4.7以降の環境では、このコードがそのまま実行できます。
4.6.x以前のバージョンでは、System.ValueTupple
パッケージをNugetからインストールする必要があるので注意。