CA1717:只有 FlagsAttribute 枚举应采用复数形式的名称

类型名

OnlyFlagsEnumsShouldHavePluralNames

CheckId

CA1717

类别

Microsoft.Naming

是否重大更改

原因

外部可见的枚举的名称以复数形式的单词结尾,而该枚举未标有 System.FlagsAttribute 特性。

规则说明

命名约定规定,复数形式的枚举名称表示可以同时指定多个枚举值。 FlagsAttribute 通知编译器应将枚举视为一个位字段,允许对枚举执行按位运算。

如果一次只能指定一个枚举值,枚举的名称应为单数形式的单词。 例如,定义星期几的枚举可能打算在可以指定多天的应用程序中使用。 此枚举应具有 FlagsAttribute 并且可称为“Days”。 只允许指定一天的类似枚举将没有该特性,并可称为“Day”。

命名约定为所有针对公共语言运行时的库提供了通用的外观。 这缩短了学习新软件库所需的时间,并使客户进一步认为该软件库是由某位具有开发托管代码专门技术的人员所开发。

如何解决冲突

使用单数形式的名称作为枚举的名称或者添加 FlagsAttribute

何时禁止显示警告

如果名称以单数形式的单词结尾,可以安全地禁止显示有关此规则的警告。

相关规则

CA1714:Flags 枚举应采用复数形式的名称

CA1027:用 FlagsAttribute 标记枚举

CA2217:不要使用 FlagsAttribute 标记枚举

请参见

参考

System.FlagsAttribute

概念

枚举设计