[轉] C# 語言版本控制

當使用新版本的語法糖時,編譯器報錯了:

 

參考:https://learn.microsoft.com/zh-cn/dotnet/csharp/language-reference/configure-language-version

配置項目文件,添加如下藍色配置後正常:

  <PropertyGroup>
    <LangVersion>latest</LangVersion>
  </PropertyGroup>

默認值

編譯器根據以下規則確定默認值:

目標版本C# 語言版本的默認值
.NET 8.x C# 12
.NET 7.x C# 11
.NET 6.x C# 10
.NET 5.x C# 9.0
.NET Core 3.x C# 8.0
.NET Core 2.x C# 7.3
.NET Standard 2.1 C# 8.0
.NET Standard 2.0 C# 7.3
.NET Standard 1.x C# 7.3
.NET Framework 全部 C# 7.3

C# 語言版本引用

下表顯示當前所有 C# 語言版本。 較舊的編譯器可能無法理解每個值。 如果安裝了最新的 .NET SDK,則可以訪問列出的所有內容。

含義
preview 編譯器接受最新預覽版中的所有有效語言語法。
latest 編譯器接受最新發布的編譯器版本(包括次要版本)中的語法。
latestMajor
或 default
編譯器接受最新發布的編譯器主要版本中的語法。
12.0 編譯器只接受 C# 12 或更低版本中所含的語法。
11.0 編譯器只接受 C# 11 或更低版本中包含的語法。
10.0 編譯器只接受 C# 10 或更低版本中所含的語法。
9.0 編譯器只接受 C# 9 或更低版本中所含的語法。
8.0 編譯器只接受 C# 8.0 或更低版本中所含的語法。
7.3 編譯器只接受 C# 7.3 或更低版本中所含的語法。
7.2 編譯器只接受 C# 7.2 或更低版本中所含的語法。
7.1 編譯器只接受 C# 7.1 或更低版本中所含的語法。
7 編譯器只接受 C# 7.0 或更低版本中所含的語法。
6 編譯器只接受 C# 6.0 或更低版本中所含的語法。
5 編譯器只接受 C# 5.0 或更低版本中所含的語法。
4 編譯器只接受 C# 4.0 或更低版本中所含的語法。
3 編譯器只接受 C# 3.0 或更低版本中所含的語法。
ISO-2
或 2
編譯器只接受 ISO/IEC 23270:2006 C# (2.0) 中所含的語法。
ISO-1
或 1
編譯器只接受 ISO/IEC 23270:2003 C# (1.0/1.2) 中所含的語法。

備註

使用 default 值指定 LangVersion 與省略 LangVersion 選項不同。 指定 default 會使用編譯器支持的語言的最新版本,而不考慮目標框架。 例如,從當前版本的 Visual Studio 版本 2022 生成面向 .NET 6 的項目時,如果未指定 LangVersion,則使用 C# 10,但如果 LangVersion 設置爲 default,則使用 C# 11。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章