CA1717:只有 FlagsAttribute 枚举应采用复数形式的名称
类型名 |
OnlyFlagsEnumsShouldHavePluralNames |
CheckId |
CA1717 |
类别 |
Microsoft.Naming |
是否重大更改 |
是 |
原因
外部可见的枚举的名称以复数形式的单词结尾,而该枚举未标有 System.FlagsAttribute 特性。
规则说明
命名约定规定,复数形式的枚举名称表示可以同时指定多个枚举值。 FlagsAttribute 通知编译器应将枚举视为一个位字段,允许对枚举执行按位运算。
如果一次只能指定一个枚举值,枚举的名称应为单数形式的单词。 例如,定义星期几的枚举可能打算在可以指定多天的应用程序中使用。 此枚举应具有 FlagsAttribute 并且可称为“Days”。 只允许指定一天的类似枚举将没有该特性,并可称为“Day”。
命名约定为所有针对公共语言运行时的库提供了通用的外观。 这缩短了学习新软件库所需的时间,并使客户进一步认为该软件库是由某位具有开发托管代码专门技术的人员所开发。
如何解决冲突
使用单数形式的名称作为枚举的名称或者添加 FlagsAttribute。
何时禁止显示警告
如果名称以单数形式的单词结尾,可以安全地禁止显示有关此规则的警告。
相关规则
CA2217:不要使用 FlagsAttribute 标记枚举