CA1717: Solo le enumerazioni con FlagsAttribute devono avere nomi plurali
TypeName |
OnlyFlagsEnumsShouldHavePluralNames |
CheckId |
CA1717 |
Category |
Microsoft.Naming |
Breaking Change |
Breaking |
Causa
Il nome di un'enumerazione visibile esternamente termina con una parola plurale e l'enumerazione non è contrassegnata con l'attributo System.FlagsAttribute.
Descrizione della regola
In base alle convenzioni di denominazione, un nome plurale in un'enumerazione indica che è possibile specificare più valori di enumerazione alla volta. La presenza di FlagsAttribute indica ai compilatori che l'enumerazione deve essere considerata come un campo di bit che consente l'esecuzione di operazioni bit per bit sull'enumerazione.
Se è possibile specificare un solo valore di enumerazione alla volta, il nome dell'enumerazione dovrà essere una parola singolare. Ad esempio, un'enumerazione che definisce i giorni della settimana potrebbe essere destinata all'utilizzo in un'applicazione in cui è possibile specificare più giorni. Questa enumerazione dovrà contenere l'attributo FlagsAttribute e potrebbe essere denominata "Days". Un'enumerazione simile che consenta di specificare un solo giorno, non conterrà tale attributo e potrebbe essere denominata "Day".
Le convenzioni di denominazione forniscono un aspetto comune alle librerie che si avvalgono di Common Language Runtime. In questo modo, si riduce il tempo necessario per l'apprendimento di una nuova libreria software e i clienti possono confidare nel fatto che la libreria sia stata sviluppata da esperti nello sviluppo di codice gestito.
Come correggere le violazioni
Cambiare il nome dell'enumerazione in una parola singolare o aggiungere l'attributo FlagsAttribute.
Esclusione di avvisi
L'esclusione di un avviso da questa regola è sicura se il nome termina con una parola singolare.
Regole correlate
CA1714: Le enumerazioni con Flags devono avere nomi plurali
CA1027: Contrassegnare le enumerazioni con FlagsAttribute
CA2217: Non contrassegnare le enumerazioni con FlagsAttribute