写点什么

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:5111119

评论

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

JVM--垃圾回收算法

是老郭啊

JVM 垃圾回收机制 JVM垃圾回收原理

如何轻松启动Docker服务

吴脑的键客

Docker

数仓开发人员经常说的 ETL、ELT,又有什么区别

奔向架构师

大数据 数据架构 话题讨论 7月日更

《持之以恒的从事运动》四

Changing Lin

那些年Android面试官常问的知识点,真香!

欢喜学安卓

android 程序员 面试 移动开发

GitHub标星90K+ 的算法小抄,全球排名 36,到底有多牛逼?

Java 程序员 架构 面试

分析一下微信朋友圈的高性能复杂度

NewBranSTONE

架构实战营

yidong

方白

架构实战营第一期--模块一作业

clay

架构实战营

草稿20210707

cc=o

架构实战营 草稿

非对称风险:你需要为行为结果负责吗?

石云升

读书笔记 风险 7月日更

This post is all you need(①多头注意力机制原理)

月来客栈

深度学习 Transformer

模块一作业

MX

智能运维(AIOps)系列之二:什么是人工智能

micklongen

人工智能 AIOPS 智能运维

5G云计算齐发力,云电脑的春天到了吗?

脑极体

介绍一款Hive数仓可视化神器、Dbeaver的配置和使用方法

白贺BaiHe

7月日更 Dbeaver 数仓工具 数据库客户端

【又是干货】史诗级漏洞挖掘的过程快get一下

网络安全学海

运维 网络安全 信息安全 渗透测试 漏洞修复

深入理解搜索引擎——开篇

药老算法

数据挖掘 机器学习 搜索引擎 全文检索 向量检索

Cobar源码分析之AST

捉虫大师

sql AST cobar

架构训练营模块一作业

高铎

架构实战营

架构实战营--模块一作业

小牧ah

架构实战营

程序员考证有什么现实意义? | 话题讨论

happlyfox

话题讨论

🏆(不要错过!)【CI/CD技术专题】「Jenkins实战系列」(2)Jenkins实现自动化部署+自动化合并其他分支

码界西柚

jenkins CI/CD 7月日更

注册中心篇,欣赏阿里开源Nacos

下雨喽

Java 设计 nacos

被面试官问的Android问题难倒了,3面直接拿到offer

欢喜学安卓

android 程序员 面试 移动开发

[架构实战营一期]模块一作业

trymorewang

#架构实战营

靠着这份Java面试题跟答案,我从 14K 变成了 28K!

Java 程序员 架构 面试

微信业务架构图 & 学生管理系统

gawaine

架构实战营

5分钟速读之Rust权威指南(三十七)模式性质

wzx

rust

蜕变中的B站:给各大自媒体平台带来那些启发

石头IT视角

模块一:

kk

#架构实战营

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