#はじめに
.Net Core
プロジェクトでコンソールアプリを開発するときに、C#の言語バージョンを変更したいときがあります。
例えば、コンソールアプリでMainメソッドにasync
をつけたいときです。
しかし、Mainメソッドにasync
をつけられるのはC#7.1からです。
現時点(2019年1月8日)におけるメジャーバージョンは7.0であり、プロジェクト作成時にはデフォルトでこのメジャーバージョンが選択されるため、Mainメソッドにはasync
をつけることができません。
Visual Studioを使っているのであれば、以下のようにプロジェクトのプロパティ
からビルド
タブの一番下の詳細設定
をクリックすると、言語バージョンを選択することができます。
しかしながら、.Net Core
はWindows以外の環境で開発することもあるため、この方法は使えません。
#やりかた
.csproj
ファイルを編集します。
プロジェクトフォルダの中にプロジェクト名.csproj
というファイルがあります。
これを開くと以下のようになっています。
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>netcoreapp2.1</TargetFramework>
</PropertyGroup>
<!--省略-->
</Project>
この中のPropertyGroup
要素の中に以下の要素を追加します。今回は言語バージョンを7.1
にするものとします。
<LangVersion>7.1</LangVersion>
追加後の全体としては以下のようになります。
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>netcoreapp2.1</TargetFramework>
<LangVersion>7.1</LangVersion>
</PropertyGroup>
<!--省略-->
</Project>
これでC#7.1の機能を使うことができます。
指定できる言語バージョンとそれぞれの説明については公式のこちらのページを参照してください。