當使用新版本的語法糖時,編譯器報錯了:
參考: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。