CA1712:不要将类型名用作枚举值的前缀
属性 | 值 |
---|---|
规则 ID | CA1712 |
标题 | 不要将类型名用作枚举值的前缀 |
类别 | 命名 |
修复是中断修复还是非中断修复 | 重大 |
在 .NET 8 中默认启用 | 否 |
原因
枚举包含名称以枚举的类型名称开头的成员。
规则说明
枚举成员的名称不使用类型名称作为前缀,因为类型信息将由开发工具提供。
命名约定为面向公共语言运行时的库提供通用外观。 这缩短了学习新软件库所需的时间,让客户更加相信该库是由拥有开发托管代码专业知识的人员所开发。
如何解决冲突
若要解决此规则的冲突,请从枚举成员中删除类型名称前缀。
何时禁止显示警告
不禁止显示此规则发出的警告。
示例
下面的示例演示了一个错误命名的枚举,后跟更正后的版本。
public enum DigitalImageMode
{
DigitalImageModeBitmap = 0,
DigitalImageModeGrayscale = 1,
DigitalImageModeIndexed = 2,
DigitalImageModeRGB = 3
}
public enum DigitalImageMode2
{
Bitmap = 0,
Grayscale = 1,
Indexed = 2,
RGB = 3
}
Imports System
Namespace ca1712
Enum DigitalImageMode
DigitalImageModeBitmap = 0
DigitalImageModeGrayscale = 1
DigitalImageModeIndexed = 2
DigitalImageModeRGB = 3
End Enum
Enum DigitalImageMode2
Bitmap = 0
Grayscale = 1
Indexed = 2
RGB = 3
End Enum
End Namespace
相关规则
配置代码以进行分析
使用下面的选项来配置代码库的哪些部分要运行此规则。
可以仅为此规则、为适用的所有规则或为适用的此类别(命名)中的所有规则配置此选项。 有关详细信息,请参阅代码质量规则配置选项。
枚举值前缀触发器
你可以配置触发规则所需的枚举值数量。 例如,若要指定在一个或多个枚举值以枚举类型名称开头时触发规则,请将以下键值对添加到项目中的 editorconfig 文件:
dotnet_code_quality.CA1712.enum_values_prefix_trigger = AnyEnumValue
示例:
选项值 | 总结 |
---|---|
dotnet_code_quality.CA1712.enum_values_prefix_trigger = AnyEnumValue |
如果任意枚举值以枚举类型名称开头,则会触发此规则。 |
dotnet_code_quality.CA1712.enum_values_prefix_trigger = AllEnumValues |
如果所有枚举值均以枚举类型名称开头,则会触发此规则。 |
dotnet_code_quality.CA1712.enum_values_prefix_trigger = Heuristic |
使用默认启发式(即至少 75% 的枚举值以枚举类型名称开头)触发规则。 |