修复“错误CS891:类型名称只包含ASCII小写字符”

BCVP开发社区又新增小伙伴了,主要是将国外的博客进行翻译,由我进行发表。内容不在多经典,都是有意思的小文章。

原文链接:

https://dotnetcoretutorials.com/2022/08/10/fixing-cs891-the-type-name-only-contains-lower-cased-ascii-characters/

如果你的版本低于.NET 7,可能在.NET 6项目中遇到以下问题:

Warning CS8981: The type name only contains lower-cased ascii characters. Such names may become reserved for the language.

出现这类提示时,如果在.NET 6版本中正常,不报错的情况西啊,可以不用深究!.

我们看个例子,了解为什么会有这个提示。

假如你很多年前在.NET 2.0版本写了C#代码,你想定义一个异步的类,然后代码可能是这样的:

// 你自己的代码class async {// todo 各种逻辑}

这里,“关键词async/await在.Net中不存在,所以需要用其中一个单词创建类名,尽管它们不一定符合传统的大驼峰命名法。

C# 5.0版本才出现async/await。现在就出现问题了,因为微软官方和你自己的命名冲突了。

我们知道,微软每年发布新版.NET/C#,可能会在未来版本中增加新的专用关键词,很显然微软无法把未来即将出现的关键词提前预留出来。

综上所述,微软的专用关键词已经是全部小写了,所以如果你在命名时避免全部小写,比如用驼峰就是好习惯,那未来肯定不会和微软冲突。记住C#本身是区分大小写的,大小写敏感!

再说明一下,这只是个提示,也可以忽略它。

但是需要我们在写代码的时候,多多注意写法规范。