切换导航
简历
工具
演示
查询
导航菜单
服务端
30
前端
114
数据库
82
进阶开发
8
桌面程序
2
QA
15
软件使用
36
规范协议
5
操作系统
11
AI
0
复用资源
6
硬件
0
标签
C# 基础
Mybatis
ADO.NET
ASP.NET
Python 基础
Linq
Web Forms
.NET
Spring
SpringBoot
SpringCloud
.NET Core 中间件
Maven
.NET 类库
ASP.NET MVC
EF
NHibernate
WebApi
Java
外部链接
.NET Core SDK和运行时安装包
淘宝 NPM 镜像
查询网
Tables Generator线上表格转换工具
引用cdn在线脚本和样式
首页
服务端
C# 语言版本控制
[TOC] ## 1. C#各版本对应的框架 |目标|版本|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| ## 2. 修改当前项目支持的C#版本 修改当前项目支持的C#版本即修改当前框架支持的默认C#版本,主要有以下三种方式 ### 2.1. 编辑项目文件 通过编辑 .csproj 文件来更改支持C#语言版本的值, 例如,如果你明确希望访问预览功能,请添加如下元素: ```XML <PropertyGroup> <LangVersion>preview</LangVersion> </PropertyGroup> ``` > **tips:** 值 preview 使用编译器支持的最新可用的预览 C# 语言版本,需要在 Visual Studio Preview 预览版本下编辑 #### 2.1.1. 配置多个项目 可以创建一个包含 <LangVersion> 元素的 Directory.Build.props 文件(通常在解决方案目录中)。 将以下设置添加到 Directory.Build.props 文件: ```XML <Project> <PropertyGroup> <LangVersion>preview</LangVersion> </PropertyGroup> </Project> ``` #### 2.1.2. 项目使用可支持的最新语言版本 Visual Studio 2017 的新项目模板向新项目文件添加了一个<LangVersion>latest</LangVersion>条目。如果升级这些项目的目标框架,则 <LangVersion> 设置可以 替代新目标框架的默认值 > **tips:**如果项目需要使用目标框架的推荐编译器版本,请务必删除项目文件中<LangVersion>latest</LangVersion> ### 2.2. 查看当前框架和支持的C#语言版本 #### 2.2.1. 当前框架 在Visual Studio中找到项目-》右击属性-》应用程序常规  #### 2.2.2. 支持的语言版本 + **方式一:**在Visual Studio中找到项目-》右击属性-》生成-》高级》语言版本 <per></per>  + **方式二:**在编辑器中输出 `#error version`,这时会弹出版本错误,并标记出当前使用的语言版本 <per></per>  > **tips:**更新目标框架可以访问对应C#语言版本的功能 ### 2.3. C# 语言版本引用 |值|含义| |--|--| |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) 中所含的语法。| > **Tips:**使用 default 值指定 LangVersion 与省略 LangVersion 选项不同。 指定 default 会使用编译器支持的语言的最新版本,而不考虑目标框架。 例如,从当前版本的 Visual Studio 版本 2022 生成面向 .NET 6 的项目时,如果未指定 LangVersion,则使用 C# 10,但如果 LangVersion 设置为 default,则使用 C# 11。 ```XML <Project Sdk="Microsoft.NET.Sdk"> <PropertyGroup> <OutputType>Exe</OutputType> <TargetFramework>net6.0</TargetFramework> <LangVersion>default</LangVersion> </PropertyGroup> </Project> ``` |未指定default之前|指定default之后| |--|--| ||| [========] 参考资料:[《C# 语言版本控制》](https://learn.microsoft.com/zh-cn/dotnet/csharp/language-reference/configure-language-version#configure-multiple-projects)
扫一扫手机看
点击排行
windows 文件资源管理器使用
Layui 弹窗open使用说明
SQL Server 中字符串函数使用
C# 使用QQ邮箱代理做邮件接收功能
SQL Server关于apply的两种形式cross apply 和 outer apply
ASP.NET MVC 模型的自定义验证
nvm安装及常用命令
SQL Server 中数据类型转换
SQL Server 中WITH AS短语的使用
IE浏览器下AJAX缓存问题导致数据不更新的解决办法
订阅号