CA1712: не добавляйте имя типа перед перечисляемыми значениями
Свойство | Значение |
---|---|
Идентификатор правила | CA1712 |
Заголовок | Не добавляйте имя типа перед перечисляемыми значениями |
Категория | Именование |
Исправление является критическим или не критическим | Критическое |
Включен по умолчанию в .NET 9 | No |
Причина
Перечисление содержит элемент, имя которого начинается с имени типа перечисления.
Описание правила
Имена элементов перечисления не должны содержать префиксы с именем типа, так как сведения о типе предоставляются средствами разработки.
Соглашения об именовании обеспечивают единство вида библиотек, предназначенных для среды CLR. Это сокращает время, необходимое для изучения новой библиотеки программного обеспечения, и повышает уверенность пользователей в том, что библиотека была разработана кем-то, кто имеет опыт разработки управляемого кода.
Устранение нарушений
Чтобы устранить нарушение этого правила, удалите префикс имени типа из элемента перечисления.
Когда лучше отключить предупреждения
Для этого правила отключать вывод предупреждений не следует.
Пример
В следующем примере показано неправильно именованное перечисление, за которым указана исправленная версия.
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
Связанные правила
- CA1711: идентификаторы не должны иметь неверных суффиксов
- CA1027: следует помечать перечисления атрибутом FlagsAttribute
- CA2217: не следует помечать перечисления атрибутом FlagsAttribute
Настройка кода для анализа
Используйте следующий параметр, чтобы выбрать части базы кода для применения этого правила.
Этот параметр можно настроить только для этого правила, для всех правил, к которым он применяется, или для всех правил в этой категории (именование), к которым она применяется. Дополнительные сведения см. в статье Параметры конфигурации правила качества кода.
Значения перечисления для активации префикса
Вы можете настроить количество значений перечисления, необходимых для активации правила. Например, чтобы указать, что правило должно срабатывать, если одно или несколько значений перечисления начинаются с имени типа перечисления, добавьте следующую пару "ключ-значение" в файл .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 % значений перечисления начинается с имени типа перечисления. |