Поделиться через


CA1712: не добавляйте имя типа перед перечисляемыми значениями

TypeName

DoNotPrefixEnumValuesWithTypeName

CheckId

CA1712

Категория

Microsoft.Naming

Критическое изменение

Критическое изменение

Причина

Перечисление содержит член, имя которого начинается с имени типа перечисления.

Описание правила

Имена членов перечисления не должны содержать префиксов в виде имени типа, поскольку предполагается, что сведения о типе предоставляются средствами разработки.

Соглашения об именах обеспечивают единообразие библиотек, предназначенных для выполнения в среде CLR. Это позволяет сократить время обучения, необходимое для освоения новой библиотеки программного обеспечения, и укрепить уверенность клиента в том, что библиотека была разработана опытным разработчиком управляемого кода.

Устранение нарушений

Чтобы устранить нарушение данного правила, удалите префикс в виде имени типа из имени члена перечисления.

Отключение предупреждений

Для этого правила отключать вывод предупреждений не следует.

Пример

В следующем примере показано перечисление с неправильным именем и его исправленная версия.

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