Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
| Свойство | Значение |
|---|---|
| Идентификатор правила | CA1717 |
| Заголовок | Только перечисления, использующие FlagsAttribute, должны иметь имена во множественном числе |
| Категория | Именование |
| Исправление является критическим или не критическим | Срочное |
| Включен по умолчанию в .NET 10 | Нет |
| Применимые языки | C# и Visual Basic |
Причина
Имя перечисления заканчивается словом во множественном числе, а перечисление не помечено атрибутом System.FlagsAttribute.
По умолчанию это правило проверяет только видимые извне перечисления, но это поведение можно настроить.
Описание правила
Согласно правилам именования множественное число имени перечисления указывает, что одновременно можно задать несколько значений перечисления. FlagsAttribute сообщает компилятору, что перечисление следует рассматривать как битовое поле, которое включает побитовые операции перечисления.
Если в каждый момент времени может быть указано только одно значение перечисления, то имя перечисления должно быть словом в единственном числе. Например, перечисление, определяющее дни недели, может быть предназначено для использования в приложении, где можно указать несколько дней. Это перечисление должно содержать FlagsAttribute и может называться "Дни". Аналогичное перечисление, которое позволяет указать только один день, не будет иметь атрибута и может называться "День".
Соглашения об именовании обеспечивают единство вида библиотек, предназначенных для среды CLR. Это сокращает время, необходимое для изучения новой библиотеки программного обеспечения, и повышает уверенность пользователей в том, что библиотека была разработана кем-то, кто имеет опыт разработки управляемого кода.
Устранение нарушений
Сделайте имя перечисления словом в единственном числе или добавьте FlagsAttribute.
Когда лучше отключить предупреждения
Вы можете отключить предупреждение от правила, если имя заканчивается на единственное слово.
Отключение предупреждений
Если вы просто хотите отключить одно нарушение, добавьте директивы препроцессора в исходный файл, чтобы отключить и повторно включить правило.
#pragma warning disable CA1717
// The code that's violating the rule is on this line.
#pragma warning restore CA1717
Чтобы отключить правило для файла, папки или проекта, задайте его серьезность none в файле конфигурации.
[*.{cs,vb}]
dotnet_diagnostic.CA1717.severity = none
Дополнительные сведения см. в разделе Практическое руководство. Скрытие предупреждений анализа кода.
Настройка кода для анализа
Используйте следующий параметр, чтобы выбрать части базы кода для применения этого правила.
Этот параметр можно настроить только для этого правила, для всех правил, к которым он применяется, или для всех правил в этой категории (именование), к которым она применяется. Дополнительные сведения см. в статье Параметры конфигурации правила качества кода.
Включите конкретные поверхности API
Вы можете настроить компоненты базы кода для выполнения этого правила на основе их специальных возможностей, задав параметр api_surface. Например, чтобы указать, что правило должно выполняться только для непубличной поверхности API, добавьте следующую пару "ключ-значение" в файл .editorconfig в ваш проект:
dotnet_code_quality.CAXXXX.api_surface = private, internal
Заметка
Замените XXXX частью CAXXXX идентификатором применимого правила.
Связанные правила
- CA1714: имена перечислений флагов должны быть во множественном числе
- CA1027: помечайте перечисления атрибутом FlagsAttribute
- CA2217: не следует помечать перечисления атрибутом FlagsAttribute