2025上半年,最新 AI实践都在这!20+ 应用案例,任听一场议题就值回票价 了解详情
写点什么

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

评论

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

Android组件化入门,想搞定大厂面试官

android 程序员 移动开发

android组件化通信,享学课堂

android 程序员 移动开发

Android进阶之光,享学课堂Android架构师第一期

android 程序员 移动开发

Android软件开发面试题!动脑学院vip视频破解

android 程序员 移动开发

Android进程保活黑科技实现原理解密及方法,赶紧学起来

android 程序员 移动开发

Android高级工程师必备知识!享学课堂vip怎么样

android 程序员 移动开发

android组件化和插件化,android开发入门与实战网盘

android 程序员 移动开发

Android面试基础技能罗列,自学编程找工作

android 程序员 移动开发

Android面试题2020中高级,享学课堂vip怎么样

android 程序员 移动开发

云原生网关开源、自研、商业化三位一体战略背后的思考

阿里巴巴云原生

阿里云 开源 云原生

android组件化实现,享学androidVIP课种子

android 程序员 移动开发

Android自学教程!android底层开发百度网盘

android 程序员 移动开发

2021 腾讯数字生态大会重磅来袭

CODING DevOps

云原生 腾讯数字生态大会 降本增效

Android资深架构师分享学习经验及总结,Android开发还不会这些

android 程序员 移动开发

Android面试心得必备技能储备详解,原理+实战+视频+源码

android 程序员 移动开发

Android资深架构师分享学习经验及总结,三面美团Android岗

android 程序员 移动开发

Android经典面试题详解:kotlin入门教程百度网盘

android 程序员 移动开发

Android自学!扔物线android视频

android 程序员 移动开发

Android软件开发面试题,享学课堂Android架构师视频百度云

android 程序员 移动开发

什么是挖矿木马?我猜你还不知道

网络安全学海

网络安全 信息安全 渗透测试 WEB安全 安全漏洞

Android面试题整理,动脑学院视频百度云

android 程序员 移动开发

android组件化开发框架,kotlin入门教程百度网盘

android 程序员 移动开发

Android经典面试:动脑学院

android 程序员 移动开发

android视频开发的面试问题,享学三期Android架构师

android 程序员 移动开发

漫游图书馆广发招募令,让你的闲置书“游”起来!

墨天轮

MySQL 数据库 oracle 技术书籍 书籍

Android面试题整理,享学课堂Android架构师vip

android 程序员 移动开发

android组件化实现,动脑Android

android 程序员 移动开发

android设计模式面试,享学三期Android架构师

android 程序员 移动开发

android路由表位置,扔物线朱凯

android 程序员 移动开发

分布式常见协议和算法要点摘录-Paxos&Raft

追风少年

分布式 raft PAXOS

android音视频开发面试!享学课堂课程怎么样

android 程序员 移动开发

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