SourceChord

C#とXAML好きなプログラマの備忘録。最近はWPF系の話題が中心です。

Visual Studio 2017 Update3でC#7.1を使ってみた

リリースされてから随分経ちましたが、VS2017 Update3に更新しました。 Update3からは、C#7.1の機能が使えるようになってます。

自分はまだあまりC#7の機能を使いこなせてないですが、
7.1で色々と便利な機能も追加されているので少し使ってみました。

C#7.1の有効化

VS2017をUpdate3に更新しても、デフォルトの状態ではC#7.1は有効になっていません。
プロジェクトの設定で、以下の箇所を「C#の最新のマイナーバージョン(最新)」に変更する必要があります。

f:id:minami_SC:20170914231906p:plain

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秒経過");
        }

f:id:minami_SC:20170914231919p:plain

タプルの改善

タプルは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からインストールする必要があるので注意。