值
规则 ID
CA1717
类别
命名
修复是中断修复还是非中断修复
重大
原因
枚举的名称以复数形式结尾,并且枚举未标记 System.FlagsAttribute 特性。
默认情况下,此规则仅查看外部可见的枚举,但这是可配置的。
规则说明
命名约定规定,复数形式的枚举名称表示可以同时指定多个枚举值。 FlagsAttribute 告诉编译器,应将枚举视为对枚举启用位运算的位字段。
如果一次只能指定一个枚举值,则枚举的名称应为单数形式。 例如,定义星期的枚举可能适用于可指定多天的应用程序。 此枚举应该具有 FlagsAttribute,并且可称为“Days”。 类似的枚举如果只允许指定一天,则不具有该属性,可以称为“Day”。
命名约定为面向公共语言运行时的库提供常见外观。 这缩短了学习新软件库所需的时间,让客户更加相信该库是由拥有开发托管代码专业知识的人员所开发。
如何解决冲突
将枚举名称设置为单数形式或添加 FlagsAttribute。
何时禁止显示警告
如果名称以单数形式结尾,可以禁止显示规则发出的警告。
配置代码以进行分析
使用下面的选项来配置代码库的哪些部分要运行此规则。
包含特定的 API 图面
你可以仅为此规则、为所有规则或为此类别(命名)中的所有规则配置此选项。 有关详细信息,请参阅代码质量规则配置选项。
包含特定的 API 图面
你可以根据代码库的可访问性,配置要针对其运行此规则的部分。 例如,若要指定规则应仅针对非公共 API 图面运行,请将以下键值对添加到项目中的 .editorconfig 文件:
dotnet_code_quality.CAXXXX.api_surface = private, internal
相关规则
CA1714:Flags 枚举应采用复数形式的名称
CA1027:用 FlagsAttribute 标记枚举
CA2217:不要使用 FlagsAttribute 标记枚举
另请参阅
System.FlagsAttribute
枚举设计
本文系外文翻译,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。
本文系外文翻译,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。