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) 中所含的语法。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/199690.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基于SSM的学院网站设计与实现

末尾获取源码 开发语言&#xff1a;Java Java开发工具&#xff1a;JDK1.8 后端框架&#xff1a;SSM 前端&#xff1a;Vue 数据库&#xff1a;MySQL5.7和Navicat管理工具结合 服务器&#xff1a;Tomcat8.5 开发软件&#xff1a;IDEA / Eclipse 是否Maven项目&#xff1a;是 目录…

4.3 Windows驱动开发:监控进程与线程对象操作

在内核中&#xff0c;可以使用ObRegisterCallbacks这个内核回调函数来实现监控进程和线程对象操作。通过注册一个OB_CALLBACK_REGISTRATION回调结构体&#xff0c;可以指定所需的回调函数和回调的监控类型。这个回调结构体包含了回调函数和监控的对象类型&#xff0c;还有一个A…

Camtasia2024年破解版安装包如何下载?

作为一个互联网人&#xff0c;没少在录屏软件这个坑里摸爬滚打。培训、学习、游戏、影视解说……都得用它。这时候没个拿得出手的私藏软件&#xff0c;还怎么混&#xff1f;说实话&#xff0c;录屏软件这两年也用了不少&#xff0c;基本功能是有但总觉得缺点什么&#xff0c;直…

C进阶---文件操作

我们在日常使用电脑保存文件时&#xff0c;其目的就是为了便于以后查看、修改、更新等操作&#xff1b;保存在文件中可以使数据持久化&#xff0c;所以今天我们家里学习文件的相关操作。 一、文件 1.1什么是文件 磁盘上的文件是文件。 在程序设计中&#xff0c;文件一般分…

某60区块链安全之51%攻击实战学习记录

区块链安全 文章目录 区块链安全51%攻击实战实验目的实验环境实验工具实验原理攻击过程 51%攻击实战 实验目的 1.理解并掌握区块链基本概念及区块链原理 2.理解区块链分又问题 3.理解掌握区块链51%算力攻击原理与利用 4.找到题目漏洞进行分析并形成利用 实验环境 1.Ubuntu1…

基于RK3588全高端智能终端机器人主板

一、小尺寸板型设计 该款主板为小型板&#xff0c;尺寸仅为125*85mm&#xff0c;更小更紧凑&#xff0c;可完美适应各类高端智能自助终端&#xff1b; 二、八核高端处理器 采用RK3588S八核64位处理器&#xff0c;8nm LP制程&#xff0c;主频最高达2.4GHz&#xff0c;搭载Andr…

解决requests 2.28.x版本SSL错误:证书验证失败

1、问题背景 在使用requests 2.28.1版本时&#xff0c;我进行HTTP post传输报告负载时&#xff0c;由于SSL验证设置为True&#xff0c;请求失败&#xff0c;错误如下&#xff1a;(Caused by SSLError(SSLCertVerificationError(1, ‘[SSL: CERTIFICATE_VERIFY_FAILED] certifi…

对OpenAI CEO奥特曼突然被解雇事件的一些分析

今天也来凑个热闹&#xff0c;说说OpenAI的事。本来不想写的&#xff0c;但是看到自媒体又开始胡说八道&#xff0c;所以根据我自己得到的消息和理解说一说我的看法&#xff0c;这篇文章要是有个小姐姐解说录成视频&#xff0c;那肯定火了&#xff0c;但是我现在没资源&#xf…

Oauth2认证及Spring Security Oauth2授权码模式

Oauth2认证 Oauth2简介 简介 第三方认证技术方案最主要是解决认证协议的通用标准问题&#xff0c;因为要实现跨系统认证&#xff0c;各系统之间要遵循一定的接口协议。 OAUTH协议为用户资源的授权提供了一个安全的、开放而又简易的标准。同时&#xff0c;任何第三方都可以使…

本地/笔记本/纯 cpu 部署、使用类 gpt 大模型

文章目录 1. 安装 web UI1.1. 下载代码库1.2. 创建 conda 环境1.3. 安装 pytorch1.4. 安装 pip 库 2. 下载大模型3. 使用 web UI3.1. 运行 UI 界面3.2. 加载模型3.3. 进行对话 使用 web UI 大模型文件&#xff0c;即可在笔记本上部署、使用类 gpt 大模型。 1. 安装 web UI 1…

php一句话木马免杀

php一句话木马免杀 针对于php一句话木马做免杀&#xff1a; 利用php动态函数的特性&#xff0c;将危险函数拆分成字符&#xff0c;最终使用字符串拼接的方式&#xff0c;然后重新拼接&#xff0c;后加括号执行代码&#xff0c;并且可以使用花指令进行包装&#xff0c;如无限i…

C++ DAY06 c++多态

简介 一个事物的多种形态 , 简称多态 物的多态 同一个人在不同人面前展现是不同的 如 : 在我面前 在对象面前 在朋友面前 在父母面前 事的多态 吃饭 中国人 筷子 熟食 美国人 刀叉 7 分熟 日本人 筷子 生食 印度人 手 睡觉 中国人 床上 日本人 榻榻米 侧卧 平躺…

【U8+】用友U8账套引入/还原,提示:逻辑文件‘UFModel’不是数据库的一部分。

【问题描述】 用友U8+账套引入(恢复账套)的时候,提示: 逻辑文件‘UFModel’不是数据库‘UFDATA_001_2015’的一部分。 请使用RESTORE FILELISTONLY来列出逻辑文件名。-2147217900 【解决方法】 查看用友U8+账套库正确的逻辑名称为【UFMODEL】和【UFMODEL_log】。 【案例…

​分享mfc140u.dll丢失的解决方法,针对原因解决mfc140u.dll丢失的问题

作为电脑小白&#xff0c;如果电脑中出现了mfc140u.dll丢失的问题&#xff0c;肯定会比较的慌乱。但是出现mfc140u.dll丢失的问题&#xff0c;其实也有很简单的办法&#xff0c;所以大家不用慌张&#xff0c;接下来就教大家解决办法&#xff0c;能够有效的解决mfc140u.dll丢失的…

MFC 对话框

目录 一、对话款基本认识 二、对话框项目创建 三、控件操作 四、对话框创建和显示 模态对话框 非模态对话框 五、动态创建按钮 六、访问控件 控件添加控制变量 访问对话框 操作对话框 SendMessage() 七、对话框伸缩功能实现 八、对话框小项目-逃跑按钮 九、小项…

C#中的is和as的使用和区别

目录 概述一、is操作符1. is操作符的语法2. is操作符的用途3. is操作符的使用示例4. is操作符与typeof操作符的区别 二、as操作符1. as操作符的语法2. as操作符的用途3. as操作符的使用示例4. as操作符与is操作符的区别和联系5. as操作符与is操作符的区别总结 概述 在C#编程语…

探寻欧洲市场的机遇:深度剖析欧洲跨境电商

随着全球化的不断推进&#xff0c;欧洲作为一个经济发达、多元文化共存的大陆&#xff0c;成为跨境电商发展的重要目标。本文将深入剖析欧洲跨境电商的机遇&#xff0c;分析欧洲市场的特点、挑战与前景&#xff0c;为企业提供在这个充满潜力的市场中蓬勃发展的指导。 欧洲市场的…

【前端学java】java中的Object类(8)

往期回顾&#xff1a; 【前端学java】JAVA开发的依赖安装与环境配置 &#xff08;0&#xff09;【前端学 java】java的基础语法&#xff08;1&#xff09;【前端学java】JAVA中的packge与import&#xff08;2&#xff09;【前端学java】面向对象编程基础-类的使用 &#xff08…

YOLOv8-Seg改进:位置信息的轴线压缩增强注意力Sea_Attention| ICLR2023 SeaFormer,轻量级语义分割算法,复旦大学和腾讯

🚀🚀🚀本文改进:位置信息的轴线压缩增强注意力Sea_Attention,一方面将QKV特征进行轴线压缩后再注意力增强,另一方面将QKV特征使用卷积网络提升局部信息,最后将二者融合,输出增强特征 🚀🚀🚀Sea_Attention小目标分割首选,暴力涨点 🚀🚀🚀YOLOv8-seg创新…

LeetCode【76】最小覆盖子串

题目&#xff1a; 思路&#xff1a; https://segmentfault.com/a/1190000021815411 代码&#xff1a; public String minWindow(String s, String t) { Map<Character, Integer> map new HashMap<>();//遍历字符串 t&#xff0c;初始化每个字母的次数for (int…