CA1714. У перечислений флагов должны быть имена во множественном числеCA1714: Flags enums should have plural names

ЗначениеValue
Идентификатор правилаRule ID CA1714CA1714
КатегорияCategory ИменованиеNaming
Исправление не критическое или не критическоеFix is breaking or non-breaking КритическоеBreaking

ПричинаCause

Перечисление имеет System.FlagsAttribute и его имя не оканчивается на ".An enumeration has the System.FlagsAttribute and its name does not end in 's'.

По умолчанию это правило рассматривает только видимые извне перечисления, но это можно настроить.By default, this rule only looks at externally visible enumerations, but this is configurable.

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

Типы, помеченные с помощью FlagsAttribute , имеют имена, которые являются во множественном числе, так как атрибут указывает, что может быть указано более одного значения.Types that are marked with FlagsAttribute have names that are plural because the attribute indicates that more than one value can be specified. Например, перечисление, определяющее дни недели, может быть предназначено для использования в приложении, где можно указать несколько дней.For example, an enumeration that defines the days of the week might be intended for use in an application where you can specify multiple days. Это перечисление должно содержать FlagsAttribute и может называться "Days".This enumeration should have the FlagsAttribute and could be called 'Days'. Аналогичное перечисление, которое позволяет указать только один день, не будет иметь атрибута и может называться "Day".A similar enumeration that allows only a single day to be specified would not have the attribute, and could be called 'Day'.

Соглашения об именовании обеспечивают общий вид библиотек, предназначенных для среды CLR.Naming conventions provide a common look for libraries that target the common language runtime. Это сокращает кривую обучения, необходимую для новых библиотек программного обеспечения, и повышает уверенность пользователей в том, что библиотека была разработана кем-то, кто имеет опыт разработки управляемого кода.This reduces the learning curve that is required for new software libraries, and increases customer confidence that the library was developed by someone who has expertise in developing managed code.

Устранение нарушенийHow to fix violations

Сделайте имя перечисления словом множественного числа или удалите FlagsAttribute атрибут, если не следует одновременно указывать несколько значений перечисления.Make the name of the enumeration a plural word, or remove the FlagsAttribute attribute if multiple enumeration values should not be specified simultaneously.

Когда следует подавлять предупрежденияWhen to suppress warnings

Можно спокойно подавлять нарушение, если имя является словом во множественном числе, но не заканчивается на ".It is safe to suppress a violation if the name is a plural word but does not end in 's'. Например, если перечисление с несколькими днями, описанное ранее, называлось "Дайсофсевик", это нарушает логику правила, но не его намерение.For example, if the multiple-day enumeration that was described previously were named 'DaysOfTheWeek', this would violate the logic of the rule but not its intent. Такие нарушения следует подавлять.Such violations should be suppressed.

Настройка анализируемого кодаConfigure code to analyze

Используйте следующий параметр, чтобы настроить, на какие части базы кода следует запускать это правило.Use the following option to configure which parts of your codebase to run this rule on.

Этот параметр можно настроить только для этого правила, для всех правил или для всех правил в этой категории (именование).You can configure this option for just this rule, for all rules, or for all rules in this category (Naming). Дополнительные сведения см. в разделе Параметры конфигурации правила качества кода.For more information, see Code quality rule configuration options.

Включить определенные поверхности APIInclude specific API surfaces

Вы можете настроить, на какие части базы кода следует запускать это правило, в зависимости от их доступности.You can configure which parts of your codebase to run this rule on, based on their accessibility. Например, чтобы указать, что правило должно выполняться только для поверхности API, не являющейся общедоступной, добавьте следующую пару "ключ-значение" в файл . editorconfig в проекте:For example, to specify that the rule should run only against the non-public API surface, add the following key-value pair to an .editorconfig file in your project:

dotnet_code_quality.CAXXXX.api_surface = private, internal

См. такжеSee also