CA1709:标识符的大小写应当正确
项 | “值” |
---|---|
RuleId | CA1709 |
Category | Microsoft.Naming |
重大更改 | 中断 - 在程序集、命名空间、类型、成员和参数上引发时。 非中断 - 在泛型类型参数上引发时。 |
原因
标识符名称的大小写不正确。
- 或 -
标识符名称包含由两个字母组成的首字母缩略词,而第二个字母为小写。
- 或 -
标识符名称包含的首字母缩略词有三个或更多大写字母。
规则说明
命名约定为面向公共语言运行时的库提供通用外观。 这种一致性缩短了新软件库所需的学习时间,让客户更加相信该库是由拥有托管代码开发专业知识的人员开发的。
按照约定,参数名使用 Camel 大小写,命名空间、类型和成员名称使用 Pascal 大小写。 在 Camel 大小写名称中,第一个字母为小写,名称中其余单词的第一个字母均为大写。 Camel 大小写名称的示例包括 packetSniffer
、ioFile
和 fatalErrorCode
。 在 Pascal 大小写名称中,第一个字母为大写,名称中其余单词的第一个字母均为大写。 Pascal 大小写名称的示例包括 PacketSniffer
、IOFile
和 FatalErrorCode
。
此规则根据大小写将名称拆分为单词,并针对常见的双字母单词列表(如“In”或“My”)检查任何双字母单词。 如果未找到匹配项,则假定该单词是首字母缩略词。 此外,当名称在一行中包含四个大写字母或在名称末尾的一行中包含三个大写字母时,此规则假定它找到首字母缩略词。
根据约定,两个字母的首字母缩略词都使用大写字母,三个或更多字符的首字母缩略词使用 Pascal 大小写。 以下示例使用此命名约定:“DB”、“CR”、“Cpa”和“Ecma”。 以下示例违反此约定:“Io”、“XML”和“DoD”,对于非参数名称,有“xp”和“cpl”。
“ID”是特殊情况,会导致此规则冲突。 “Id”不是首字母缩略词,而是“identification”的缩写。
如何解决冲突
更改名称,以采用正确大小写。
何时禁止显示警告
如果你有自己的命名约定,或者标识符表示正确的名称(例如公司或技术的名称),可禁止显示此警告。
还可向代码分析自定义字典添加特定术语、缩写和首字母缩略词。 自定义字典中指定的字词不会导致此规则冲突。 有关详细信息,请参阅如何:自定义代码分析字典。
相关规则
反馈
https://aka.ms/ContentUserFeedback。
即将发布:在整个 2024 年,我们将逐步淘汰作为内容反馈机制的“GitHub 问题”,并将其取代为新的反馈系统。 有关详细信息,请参阅:提交和查看相关反馈