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


Только перечисления FlagsAttribute должны иметь имена во множественном числе

Обновлен: Ноябрь 2007

TypeName

OnlyFlagsEnumsShouldHavePluralNames

CheckId

CA1717

Категория

Microsoft.Naming

Критическое изменение

Критическое

Причина

Имя перечисления, доступного для внешнего кода, оканчивается на слово во множественном числе, однако это перечисление не помечено атрибутом System.FlagsAttribute.

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

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

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

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

Предотвращение нарушений

Задайте для перечисления имя в единственном числе или добавьте атрибут FlagsAttribute.

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

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

Связанные правила

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

Помечать перечисления атрибутом FlagsAttribute

Не помечать перечисления атрибутом FlagsAttribute

См. также

Ссылки

System.FlagsAttribute