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

2022 年 7 月 5 日 InfoQ

作者 | Jonathan Allen
译者 | 平川
策划 | 丁晓昀

与 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 世纪的武术,并从事相关写作。

原文链接:

https://www.infoq.com/news/2022/06/CSharp-Warning-Wave/

点击底部阅读原文 访问 InfoQ 官网,获取更多精彩内容!

今日好文推荐

首个冲刺科创板的国产数据库:78岁老教授打磨四十年,每一行代码都自主可控

为什么 Rust 是初创公司的绝佳选择?

达梦冲刺国产数据库第一个 IPO;特斯拉自动驾驶部门裁员约 200 人;微信推出图片大爆炸功能|Q 资讯

从 IE 到 Edge:我们跟微软浏览器团队聊了聊 Web 的过去和未来 | 中国卓越技术团队访谈录

登录查看更多
0

相关内容

C# 是微软推出的一种基于.NET框架的、面向对象的高级编程语言。C# 由 C 语言和 C++ 派生而来,继承了其强大的性能,同时又以 .NET 框架类库作为基础,拥有类似 Visual Basic 的快速开发能力。
战争武装冲突时期的隐私权和数据保护,333页pdf
专知会员服务
15+阅读 · 2022年6月24日
【干货书】O'REILLY,Blockchain(区块链),149页
专知会员服务
40+阅读 · 2022年2月22日
【硬核书】演化、信息和复杂性的数学分析,504页pdf
专知会员服务
82+阅读 · 2021年9月2日
【干货书】Python科学编程,451页pdf
专知会员服务
127+阅读 · 2021年6月27日
专知会员服务
35+阅读 · 2020年10月29日
【2020新书】现代C++初学者指南,301页pdf
专知会员服务
159+阅读 · 2020年7月24日
Python数据分析:过去、现在和未来,52页ppt
专知会员服务
99+阅读 · 2020年3月9日
JavaScript、Python 比 C++ 慢 8 倍、29 倍?
CSDN
3+阅读 · 2022年7月29日
“C不再是一种编程语言”
InfoQ
0+阅读 · 2022年3月28日
尤雨溪:Vue 3 将成为新的默认版本
CSDN
0+阅读 · 2022年1月21日
2021 年 Python 的好与坏
InfoQ
2+阅读 · 2021年11月16日
国家自然科学基金
0+阅读 · 2014年12月31日
国家自然科学基金
0+阅读 · 2013年12月31日
国家自然科学基金
0+阅读 · 2013年12月31日
国家自然科学基金
0+阅读 · 2013年12月31日
国家自然科学基金
0+阅读 · 2012年12月31日
国家自然科学基金
0+阅读 · 2012年12月31日
国家自然科学基金
0+阅读 · 2011年12月31日
Arxiv
0+阅读 · 2022年8月31日
Arxiv
15+阅读 · 2021年12月22日
Arxiv
16+阅读 · 2021年1月27日
已删除
Arxiv
32+阅读 · 2020年3月23日
Arxiv
24+阅读 · 2020年3月11日
Object Detection in 20 Years: A Survey
Arxiv
48+阅读 · 2019年5月13日
VIP会员
相关VIP内容
战争武装冲突时期的隐私权和数据保护,333页pdf
专知会员服务
15+阅读 · 2022年6月24日
【干货书】O'REILLY,Blockchain(区块链),149页
专知会员服务
40+阅读 · 2022年2月22日
【硬核书】演化、信息和复杂性的数学分析,504页pdf
专知会员服务
82+阅读 · 2021年9月2日
【干货书】Python科学编程,451页pdf
专知会员服务
127+阅读 · 2021年6月27日
专知会员服务
35+阅读 · 2020年10月29日
【2020新书】现代C++初学者指南,301页pdf
专知会员服务
159+阅读 · 2020年7月24日
Python数据分析:过去、现在和未来,52页ppt
专知会员服务
99+阅读 · 2020年3月9日
相关基金
国家自然科学基金
0+阅读 · 2014年12月31日
国家自然科学基金
0+阅读 · 2013年12月31日
国家自然科学基金
0+阅读 · 2013年12月31日
国家自然科学基金
0+阅读 · 2013年12月31日
国家自然科学基金
0+阅读 · 2012年12月31日
国家自然科学基金
0+阅读 · 2012年12月31日
国家自然科学基金
0+阅读 · 2011年12月31日
相关论文
Arxiv
0+阅读 · 2022年8月31日
Arxiv
15+阅读 · 2021年12月22日
Arxiv
16+阅读 · 2021年1月27日
已删除
Arxiv
32+阅读 · 2020年3月23日
Arxiv
24+阅读 · 2020年3月11日
Object Detection in 20 Years: A Survey
Arxiv
48+阅读 · 2019年5月13日
Top
微信扫码咨询专知VIP会员