Share via


CA1712:不要将类型名用作枚举值的前缀

类型名

DoNotPrefixEnumValuesWithTypeName

CheckId

CA1712

类别

Microsoft.Naming

是否重大更改

原因

某枚举中包含的一个成员的名称以枚举的类型名称开头。

规则说明

枚举成员的名称不能以类型名称作为前缀,因为类型信息将由开发工具提供。

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

如何解决冲突

要修复与该规则的冲突,请从枚举成员中移除类型名称前缀。

何时禁止显示警告

不要禁止显示此规则发出的警告。

示例

下面的示例演示不正确命名的枚举,随后列出已更正的版本。

Imports System

Namespace NamingLibrary

   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
using System;

namespace NamingLibrary
{
   public enum DigitalImageMode
   {
      DigitalImageModeBitmap = 0,
      DigitalImageModeGrayscale = 1,
      DigitalImageModeIndexed = 2,
      DigitalImageModeRGB = 3
   }

   public enum DigitalImageMode2
   {
      Bitmap = 0,
      Grayscale = 1,
      Indexed = 2,
      RGB = 3
   }
}
using namespace System;

namespace NamingLibrary
{
   public enum class DigitalImageMode
   {
      DigitalImageModeBitmap = 0,
      DigitalImageModeGrayscale = 1,
      DigitalImageModeIndexed = 2,
      DigitalImageModeRGB = 3
   };

   public enum class DigitalImageMode2
   {
      Bitmap = 0,
      Grayscale = 1,
      Indexed = 2,
      RGB = 3
   };
}

相关规则

CA1711:标识符应采用正确的后缀

CA1027:用 FlagsAttribute 标记枚举

CA2217:不要使用 FlagsAttribute 标记枚举

请参见

参考

System.Enum