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

Свойство Значение
Идентификатор правила CA1712
Заголовок Не добавляйте имя типа перед перечисляемыми значениями
Категория Именование
Исправление является критическим или не критическим Критическое
Включен по умолчанию в .NET 8 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

Настройка кода для анализа

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

Этот параметр можно настроить только для этого правила, для всех правил, к которым он применяется, или для всех правил в этой категории (именование), к которым она применяется. Дополнительные сведения см. в статье Параметры конфигурации правила качества кода.

Значения перечисления для активации префикса

Вы можете настроить количество значений перечисления, необходимых для активации правила. Например, чтобы указать, что правило должно срабатывать, если одно или несколько значений перечисления начинаются с имени типа перечисления, добавьте следующую пару "ключ-значение" в файл .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 % значений перечисления начинается с имени типа перечисления.

См. также