写点什么

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

评论

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

一夜之间,内容行业和大模型行业被这个All in One产品改变了

脑极体

AI

权限系统:权限应用服务设计

不在线第一只蜗牛

架构 应用开发

CCF - 网易雷火基金项目成果:基于大小模型协同的低资源标注技术|CNCC 2024 演讲实录

网易伏羲

人工智能 网易伏羲 cncc

CDN海外加速对国际服务器的效果如何?

Ogcloud

CDN 网络加速 CDN加速 海外网络加速 CDN网络加速

双十一降本增效新路径!华为云Flexus X实例为中小企业注入“硬核”动力

YG科技

双十一轻松跨越数字鸿沟!华为云Flexus X实例引领中小企业低成本上云

YG科技

在华为开发者空间,简单几步带你实现AI风格化编程

华为云开发者联盟

云主机 华为云ModelArts FunctionGraph AI 大底座

微短剧出海大升级:窄带高清降本,极致播放体验,海外合规更安心

阿里云CloudImagine

人工智能 AIGC 窄带高清 视频翻译 短剧出海

为什么DDoS攻击如此普遍?

网络安全服务

黑客 流量 DDoS AI人工智能 DDoS 攻击

双十一首款柔性算力云服务器亮相全新亮相!华为云Fleus X 实例到底有多强?

YG科技

无代码技术怎么兴起的?它对企业数字化转型有什么用处?

积木链小链

技术分享 无代码 无代码平台

Python中哪个框架最适合做API?

科普小能手

API Python框架 Python开发 pyton API 接口

快递鸟快递查询API接口参数代码

快递鸟

快递

打造透明、高效的分布式系统:通过 EMQX ECP 集成实现链路追踪功能

EMQ映云科技

链路追踪 emqx EMQX ECP 边缘服务

科技赋能绿色“碳”索,下党零碳示范基地启幕

新消费日报

技术干货丨Inspire Cast 如何避免自动网格划分失败?

Altair RapidMiner

人工智能 仿真 智能制造 altair Inspire

深入了解测试开发与DevOps体系

测试人

软件测试

课程质量评估系统(源码+文档+部署+讲解)

深圳亥时科技

ppt结尾页怎么设计?推荐12个高颜值ppt结束页模板!

职场工具箱

效率工具 职场 PPT 办公软件 AI生成PPT

BSC链近况及解读:BSC链代币DApp开发详解

区块链软件开发推广运营

交易所开发 dapp开发 链游开发 公链开发 交易所开发代币开发

区块链智能合约开发:全面解析与实践指南

区块链软件开发推广运营

交易所开发 dapp开发 链游开发 NFT开发 公链开发

5分钟搞懂 Golang 堆内存

俞凡

golang

论云游戏的性能与性价比,ToDesk、青椒云、顺网云游戏等具体实操看这篇就够了

小喵子

云桌面 云电脑 云游戏 ToDesk

Java灵魂拷问13个为什么,你都会哪些?

不在线第一只蜗牛

Java Python

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