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


CA1714: имена перечислений флагов должны быть во множественном числе

Свойство Значение
Идентификатор правила CA1714
Заголовок У перечислений флагов должны быть имена во множественном числе
Категория Именование
Исправление является критическим или не критическим Критическое
Включен по умолчанию в .NET 8 No

Причина

Перечисление содержит System.FlagsAttribute, и его имя не заканчивается на "s".

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

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

Имена типов, помеченных атрибутом FlagsAttribute, используются во множественном числе, поскольку данный атрибут указывает на возможность задания нескольких значений. Например, перечисление, определяющее дни недели, может быть предназначено для использования в приложении, где можно указать несколько дней. Это перечисление должно содержать FlagsAttribute и может называться "Дни". Аналогичное перечисление, которое позволяет указать только один день, не будет иметь атрибута и может называться "День".

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

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

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

Когда лучше отключить предупреждения

Можно спокойно скрыть нарушения этого правила, если имя является словом во множественном числе, но не заканчивается на "s". Например, если перечисление с несколькими днями, описанное ранее, называлось "ДниНедели", это нарушает логику правила, но не его намерение. Такие нарушения следует скрывать.

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

Если вы просто хотите отключить одно нарушение, добавьте директивы препроцессора в исходный файл, чтобы отключить и повторно включить правило.

#pragma warning disable CA1714
// The code that's violating the rule is on this line.
#pragma warning restore CA1714

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

[*.{cs,vb}]
dotnet_diagnostic.CA1714.severity = none

Дополнительные сведения см. в разделе Практическое руководство. Скрытие предупреждений анализа кода.

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

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

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

Включение определенных контактных зон API

Вы можете настроить, для каких частей базы кода следует выполнять это правило в зависимости от их доступности. Например, чтобы указать, что правило должно выполняться только для закрытой контактной зоны API, добавьте следующую пару "ключ-значение" в файл EDITORCONFIG в своем проекте:

dotnet_code_quality.CAXXXX.api_surface = private, internal

См. также