写点什么

C#警告波预示未来将增加新的关键字

  • 2022-06-29
  • 本文字数:859 字

    阅读完需:约 3 分钟

C#警告波预示未来将增加新的关键字

与 C# 9 和 10 一样,C# 11 也悄悄地增加了一个新的编译器警告。该警告可以防止使用全部小写的类型名称(如类、结构和接口)。

 

创建这个警告是为了方便微软在未来添加新的关键字。C#的关键只包含小写 ASCII 字母,因此,加入其他任何字母都可以防止类型名称与未来的关键字发生冲突。

 

该警告的文档并没有详细说明他们正在考虑引入哪些关键字。

背景

C#工具链一直将其信息分为三大类:编译器错误、编译器警告和静态分析警告。错误会妨碍编译器正常工作。当这些错误发生时,基本上是在说,编译器检测到了不容忽视的问题。

 

另一类是编译器警告。这意味着存在明显的问题,但编译器仍然可以生成一个输出文件。编译器警告默认是启用的,但开发者可以忽略。另外,开发者也可以要求把它们当作错误处理。

 

最后一类基本上包含“其他一切”。静态分析错误可能只有在特定类型的应用程序甚至是应用程序的特定部分中才算是问题。它们比编译器警告更容易产生误报,也就是不恰当的警告。与其他类型的警告不同,静态分析警告默认是不启用的。在 Roslyn 编译器推出之前,它们是一个完全独立的工具的一部分。所以,有相当多的开发者从来没有用过它们。

 

历史上,微软一直不愿意增加新的编译器警告。因为它们是默认启用的,添加新警告被认为是一种破坏性变化。如果添加了新的警告并启用了 TreatWarningsAsErrors,那么在 C#7 中可以编译的代码在 C#8 中可能会无法编译。

 

从 C# 9 开始,微软增加了C#警告波(Warning Waves)的概念。这是些附加的编译器警告,也就是说,不需要额外安装一个工具或包,它们默认是不启用的。要使用它们,则必须将项目文件中的AnalysisLevel设置为 5 或者更高。


作者简介:

Jonathan Allen 从 90 年代末开始就为一家健康诊所建设 MIS 项目,帮他们从 Access 和 Excel 升级到企业解决方案。在花了五年时间编写金融业自动交易系统后,他成为各种项目的顾问,包括机器人仓库 UI、癌症研究软件的中间层以及一家大型房地产保险公司的大数据需求。在空闲时间,他喜欢研究源于 16 世纪的武术,并从事相关写作。

 

原文链接:

C# Warning Waves Hint at New Keywords in the Future

2022-06-29 08:5111113

评论

发布
暂无评论
发现更多内容

vue2升级vue3: 全局变量挂载与类型声明

zhoulujun

Serverless 时代下微服务应用全托管解决方案

阿里巴巴云原生

阿里云 Serverless 微服务 云原生

Redis HyperLogLog 是什么?这些场景使用让我枪出如龙一笑破苍穹

码哥字节

redis HyperLogLog Redis 数据结构

Vscode有什么好用的插件?

Jackpop

一行代码可以做什么?

Jackpop

vue2升级vue3:vue2 vue-i18n 升级到vue3搭配VueI18n v9

zhoulujun

国际化 i18n vue-i18n

揭秘支撑百度搜索、Feed、小程序三大业务的MVVM框架设计思想,San 核心人员倾力打造

图灵教育

前端开发 好书推荐 框架设计

昇腾科研创新使能计划赋能开发者  华为计算提供三大维度支持

极客天地

SQL操作:WITH表达式及其应用

华为云开发者联盟

数据库 sql 后端 华为云

拥抱开放,Serverless 时代的下一征程

阿里巴巴云原生

阿里云 Serverless 云原生 SAE

AWS CloudWatch

冯亮

云计算 监控 AWS

Redis 做缓存场景引发的问题

Ayue、

redis

Dubbo3 官方文档贡献者征集令

阿里巴巴云原生

阿里云 开源 云原生 dubbo

数据库主键一定要自增吗?有哪些场景不建议自增?

CRMEB

Nebula Graph入驻阿里云计算巢,助力企业打造云上超大规模图数据库

阿里云弹性计算

spark 分布式 云原生 图数据库 计算巢

力扣每日一练之双指针1Day8

京与旧铺

6月月更

技术实践 | 场景导向的音视频通话体验优化

融云 RongCloud

秒云云原生信创全兼容解决方案再升级,助力信创产业加速落地

MIAOYUN

运维 云原生 信创 智能运维 信创云

vue-axios(一)

小恺

6月月更

基于 K8s 的交付难题退退退!| 独家交付秘籍(第三回)

阿里巴巴云原生

阿里云 Kubernetes 云原生 应用交付平台

启动!阿里巴巴编程之夏2022

阿里巴巴云原生

阿里云 云原生 编程之夏

vue2升级vue3:Vue2/3插槽——vue3的jsx组件插槽slot怎么处理

zhoulujun

typescript Vue3 slots tsx slot

vue2升级vue3:Vue3时jsx组件绑定自定义的事件、v-model、sync修

zhoulujun

Vue3 sync tsx

从-1开始实现一个中间件

艾小仙

Java 中间件 springboot

Docker入坑篇

青柚1943

Docker DevOps 云原生 容器化

pnpm 中无法使用 patch-package 打补丁

OpenHacker

前端 js

阿里云 ACK One、ACK 云原生 AI 套件新发布,解决算力时代下场景化需求

阿里巴巴云原生

阿里云 云原生 分布式云容器平台 ACK One ACK 云原生 AI 套件

小程序怎样关联微信小程序二维码,实现二码合一聚合

Geek_99967b

小程序 小程序容器

有哪些新手程序员不知道的小技巧?

Jackpop

C语言数组与指针练习题(原题+解析+原码)

未见花闻

6月月更

文件I/O

fy

UNIX系统

C#警告波预示未来将增加新的关键字_语言 & 开发_Jonathan Allen_InfoQ精选文章