[转] 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。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
2016-03-05 [转]MVC 经验总结_EF
2016-03-05 [转]MVC 经验总结_序