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