January
4th,
2018
在 C# 7.1 開始加入了非同步 Main()
的寫法,更方便我們寫非同步的程式,而且 Visual Studio 2017 (Version 15.3) 已經內建 C# 7.1 的功能,不過預設專案會使用最新主要版本,也就是 C# 7.0,因此在享用 C# 7.1 新的語法糖前,要先知道如何指定 C# 版本。
指定 C# 版本
使用介面
在 Visual Studio 中有兩種方式可以指定 C# 版本,一種是使用介面做修改,從工具列中點選專案 > 屬性
在建置頁籤中點選進階按鈕,會開啟進階建置設定的視窗,這裡可以看到,Visual Studio 預設是使用 C# 最新主要版本,也就是 C# 7.0,這裡我們可以指定要使用的版本,或是選擇 C# 最新次要版本,這選項會使用目前環境中最新的 C# 版本,以下圖為例,就是 C# 7.2。
修改專案檔
我們也可以透過直接修改 .csproj
專案檔來指定版本,從工具列中點選專案 > 編輯 ConsoleApp.csproj
這裡只需要在 <PropertyGroup>
段落中加入 <LangVersion>latest</LangVersion>
就會使用目前環境中最新的 C# 版本,或者可以加入 <LangVersion>7.1</LangVersion>
來指定要使用的 C# 版本。
如此一來,我們就可享受最新的 C# 語法糖囉!
非同步 Main()
這裡筆記一下非同步 Main()
的知識點。
在 C# 7.0 以前 (包含 C# 7.0),Main()
的函數簽章只有下列 4 種:
static void Main()
static void Main(string[])
static int Main()
static int Main(string[])
C# 7.1 多了下列的函數簽章:
static async Task Main()
static async Task<int> Main()
static async Task Main(string[])
static async Task<int> Main(string[])
這樣 Main()
就可以變成是非同步的了。
參考資料: