C#,怎么修改(VS)Visual Studio 2022支持的C#版本

2023-11-21 06:44

本文主要是介绍C#,怎么修改(VS)Visual Studio 2022支持的C#版本,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一些文字来自于 Microsoft . (只需要读下面的红色文字即可!

1 C# 语言版本控制

最新的 C# 编译器根据项目的一个或多个目标框架确定默认语言版本。 Visual Studio 不提供用于更改值的 UI,但可以通过编辑 .csproj 文件来更改值。 此默认选择可确保使用与目标框架兼容的最新语言版本。 你将从访问与项目目标兼容的最新语言功能中受益。 此默认选择还可确保不会使用需要类型或运行时行为在目标框架中不可用的语言。 选择比默认版本更高的语言版本可能导致难以诊断编译时和运行时错误。

C# 11 仅在 .NET 7 及更高版本上受支持。 C# 10 仅在 .NET 6 及更高版本上受支持。 C# 9 仅在 .NET 5 及更高版本上受支持。

有关 Visual Studio 版本支持的 NET 版本的详细信息,请查看 Visual Studio 平台兼容性页面。 有关 Visual Studio for Mac 版本支持的 NET 版本的详细信息,请查看 Visual Studio for Mac 平台兼容性页面。 查看 C# 的 Mono 页面,了解 Mono 与 C# 版本的兼容性。

2 默认值

编译器根据以下规则确定默认值:

目标    版本    C# 语言版本的默认值
.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
如果你的项目是以具有相应预览语言版本的预览框架为目标,那么使用的语言版本是预览语言版本。 你可在任何环境中使用该预览版提供的最新功能,而不会影响面向已发布 .NET Core 版本的项目。

重要

Visual Studio 2017 的新项目模板向新项目文件添加了一个 <LangVersion>latest</LangVersion> 条目。 如果你升级这些项目的目标框架,则它们替代默认行为。 更新 .NET SDK 时,应从项目文件中删除 <LangVersion>latest</LangVersion>。 然后项目将使用建议用于目标框架的编译器版本。 可更新目标框架以访问更新的语言功能。

3 替代默认值


如果必须明确指定 C# 版本,可以通过以下几种方式实现:

手动编辑项目文件。
为子目录中的多个项目设置语言版本。
配置 LangVersion 编译器选项。
 提示

可以在“项目属性”页查看 Visual Studio 中的语言版本。 在“生成”选项卡下,“高级”窗格将显示所选版本。

若要了解当前使用的语言版本,请在代码中添加 #error version(区分大小写)。 这样做可使编译器报告编译器错误 CS8304,并显示一条消息,其中包含正在使用的编译器版本和当前选择的语言版本。 有关详细信息,请参阅 #error(C# 参考)。

4 编辑项目文件

编辑你的项目文件比如 demo.proj 文件;
可在项目文件中设置语言版本。 例如,如果你明确希望访问预览功能,请添加如下元素:

退出 VS,找到 任何一行 </PropertyGroup>,在后面添加下面三行 xml,重新进入 VS 即可。

<PropertyGroup><LangVersion>preview</LangVersion>
</PropertyGroup>



值 preview 使用编译器支持的最新可用的预览 C# 语言版本。

配置多个项目


若要配置多个目录,可以创建包含 元素的 Directory.Build.props 文件。 通常是在解决方案目录中完成这件事。 将以下内容添加到解决方案目录中的 Directory.Build.props 文件:


<Project>
 <PropertyGroup>
   <LangVersion>preview</LangVersion>
 </PropertyGroup>
</Project>


包含该文件的目录的所有子目录中的版本都将使用 C# 预览版。 有关详细信息,请查看自定义生成。

5 C# 语言版本引用


下表显示当前所有 C# 语言版本。 如果编译器较旧,它可能不一定能识别每个值。 如果安装的是最新的 .NET SDK,则可以访问列出的所有内容。

值    含义
preview    编译器接受最新预览版中的所有有效语言语法。
latest    编译器接受最新发布的编译器版本(包括次要版本)中的语法。
latestMajor
或 default    编译器接受最新发布的编译器主要版本中的语法。
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) 中所含的语法。

这篇关于C#,怎么修改(VS)Visual Studio 2022支持的C#版本的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/400550

相关文章

Visual Studio 2022 编译C++20代码的图文步骤

《VisualStudio2022编译C++20代码的图文步骤》在VisualStudio中启用C++20import功能,需设置语言标准为ISOC++20,开启扫描源查找模块依赖及实验性标... 默认创建Visual Studio桌面控制台项目代码包含C++20的import方法。右键项目的属性:

怎么用idea创建一个SpringBoot项目

《怎么用idea创建一个SpringBoot项目》本文介绍了在IDEA中创建SpringBoot项目的步骤,包括环境准备(JDK1.8+、Maven3.2.5+)、使用SpringInitializr... 目录如何在idea中创建一个SpringBoot项目环境准备1.1打开IDEA,点击New新建一个项

k8s上运行的mysql、mariadb数据库的备份记录(支持x86和arm两种架构)

《k8s上运行的mysql、mariadb数据库的备份记录(支持x86和arm两种架构)》本文记录在K8s上运行的MySQL/MariaDB备份方案,通过工具容器执行mysqldump,结合定时任务实... 目录前言一、获取需要备份的数据库的信息二、备份步骤1.准备工作(X86)1.准备工作(arm)2.手

qt5cored.dll报错怎么解决? 电脑qt5cored.dll文件丢失修复技巧

《qt5cored.dll报错怎么解决?电脑qt5cored.dll文件丢失修复技巧》在进行软件安装或运行程序时,有时会遇到由于找不到qt5core.dll,无法继续执行代码,这个问题可能是由于该文... 遇到qt5cored.dll文件错误时,可能会导致基于 Qt 开发的应用程序无法正常运行或启动。这种错

电脑提示xlstat4.dll丢失怎么修复? xlstat4.dll文件丢失处理办法

《电脑提示xlstat4.dll丢失怎么修复?xlstat4.dll文件丢失处理办法》长时间使用电脑,大家多少都会遇到类似dll文件丢失的情况,不过,解决这一问题其实并不复杂,下面我们就来看看xls... 在Windows操作系统中,xlstat4.dll是一个重要的动态链接库文件,通常用于支持各种应用程序

SQL Server修改数据库名及物理数据文件名操作步骤

《SQLServer修改数据库名及物理数据文件名操作步骤》在SQLServer中重命名数据库是一个常见的操作,但需要确保用户具有足够的权限来执行此操作,:本文主要介绍SQLServer修改数据... 目录一、背景介绍二、操作步骤2.1 设置为单用户模式(断开连接)2.2 修改数据库名称2.3 查找逻辑文件名

使用jenv工具管理多个JDK版本的方法步骤

《使用jenv工具管理多个JDK版本的方法步骤》jenv是一个开源的Java环境管理工具,旨在帮助开发者在同一台机器上轻松管理和切换多个Java版本,:本文主要介绍使用jenv工具管理多个JD... 目录一、jenv到底是干啥的?二、jenv的核心功能(一)管理多个Java版本(二)支持插件扩展(三)环境隔

华为鸿蒙HarmonyOS 5.1官宣7月开启升级! 首批支持名单公布

《华为鸿蒙HarmonyOS5.1官宣7月开启升级!首批支持名单公布》在刚刚结束的华为Pura80系列及全场景新品发布会上,除了众多新品的发布,还有一个消息也点燃了所有鸿蒙用户的期待,那就是Ha... 在今日的华为 Pura 80 系列及全场景新品发布会上,华为宣布鸿蒙 HarmonyOS 5.1 将于 7

C#如何去掉文件夹或文件名非法字符

《C#如何去掉文件夹或文件名非法字符》:本文主要介绍C#如何去掉文件夹或文件名非法字符的问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录C#去掉文件夹或文件名非法字符net类库提供了非法字符的数组这里还有个小窍门总结C#去掉文件夹或文件名非法字符实现有输入字

C#之List集合去重复对象的实现方法

《C#之List集合去重复对象的实现方法》:本文主要介绍C#之List集合去重复对象的实现方法,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录C# List集合去重复对象方法1、测试数据2、测试数据3、知识点补充总结C# List集合去重复对象方法1、测试数据