CA1717 : Seuls les noms des enums FlagsAttribute doivent être au pluriel

TypeName

OnlyFlagsEnumsShouldHavePluralNames

CheckId

CA1717

Catégorie

Microsoft.Naming

Modification avec rupture

Oui

Cause

Le nom d'une énumération extérieurement visible se termine par un mot au pluriel et l'énumération n'est pas marquée avec l'attribut System.FlagsAttribute.

Description de la règle

Selon les conventions d'attribution d'un nom, un nom au pluriel pour une énumération indique que plusieurs valeurs de l'énumération peuvent être spécifiées simultanément. Le FlagsAttribute indique aux compilateurs que l'énumération doit être traitée comme un champ de bits qui autorise des opérations de bits sur l'énumération.

Si seulement une valeur d'une énumération peut être spécifiée à la fois, le nom de l'énumération doit être un mot au singulier. À titre d'exemple, une énumération qui définit les jours de la semaine peut être prévue pour une utilisation dans une application où vous pouvez spécifier plusieurs jours. Cette énumération doit avoir l'attribut FlagsAttribute et peut être appelée "jours". Une énumération semblable qui permet uniquement à un jour d'être spécifié n'a pas d'attribut et peut être appelée "jour".

Les conventions d'affectation des noms confèrent un aspect commun aux bibliothèques qui ciblent le Common Language Runtime. Elles réduisent le temps nécessaire pour apprendre une nouvelle bibliothèque de logiciels et confirment au client que la bibliothèque a été développée par une personne compétente en matière de développement de code managé.

Comment corriger les violations

Faites du nom de l'énumération un mot au singulier ou ajoutez le FlagsAttribute.

Quand supprimer les avertissements

Il est possible de supprimer sans risque un avertissement de la règle si le nom se termine par un mot au singulier.

Règles connexes

CA1714 : Les énumérations d'indicateurs doivent avoir des noms au pluriel

CA1027 : Marquer les enums avec FlagsAttribute

CA2217 : Ne pas marquer les enums avec FlagsAttribute

Voir aussi

Référence

System.FlagsAttribute

Concepts

Conception d'énumérations