CA1712: Do not prefix enum values with type name


The new home for Visual Studio documentation is Visual Studio 2017 Documentation on

The latest version of this topic can be found at CA1712: Do not prefix enum values with type name.

|Breaking Change|Breaking|

An enumeration contains a member whose name starts with the type name of the enumeration.

Names of enumeration members are not prefixed with the type name because type information is expected to be provided by development tools.

Naming conventions provide a common look for libraries that target the common language runtime. This reduces the time that is required for to learn a new software library, and increases customer confidence that the library was developed by someone who has expertise in developing managed code.

To fix a violation of this rule, remove the type name prefix from the enumeration member.

Do not suppress a warning from this rule.

The following example shows an incorrectly named enumeration followed by the corrected version.

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

CA1711: Identifiers should not have incorrect suffix

CA1027: Mark enums with FlagsAttribute

CA2217: Do not mark enums with FlagsAttribute