Utilisez-vous le singulier ou le pluriel pour les énumérations? Je pense que c'est plus logique avec le pluriel dans la déclaration
enum Weekdays
{
Monday,
Tuesday,
Wednesday,
Thursday,
Friday,
Saturday,
Sunday
}
... mais je pense que cela a plus de sens avec singulier lorsque vous utilisez le type, par ex.
Weekday firstDayOfWeek = Weekday.Monday;
J'ai lu une recommandation quelque part d'utiliser le singulier avec des enums réguliers et le pluriel avec des drapeaux, mais j'aimerais entendre plus d'avantages et d'inconvénients.
Ici, il vient directement de Microsoft:
http://msdn.Microsoft.com/en-us/library/4x252001(VS.71).aspx
Utilisez un nom unique pour la plupart des types Enum , Mais utilisez un nom au pluriel pour les types Enum Qui sont des champs de bits.
Une recommandation provient de .NET Framework Design Guidelines , pages 59-60:
Do utilise un nom de type singulier pour une énumération, sauf si ses valeurs sont des champs de bits .
public enum ConsoleColor { Black, Blue, Cyan, ...
Do utilise un nom de type au pluriel pour une énumération avec des champs de bits en tant que valeurs, également appelé indicateur enum.
[Flags] public enum ConsoleModifiers { Alt, Control, Shift }
Dans le .NET Framework, la plupart des énumérations "normales" (par exemple, DayOfWeek
) ont des noms singuliers et les énumérations de drapeau (par exemple, StringSplitOptions
, BindingFlags
) ont des noms au pluriel. Cela a du sens, puisqu’une valeur d’un flag enum peut représenter plusieurs éléments, mais pour un non-flag, elle ne peut représenter qu’un seul élément.
En général, je considère une définition d’énum comme une définition de type, les valeurs de Étant les différentes valeurs que le type peut avoir; donc il prend un nom singulier:
enum Weekday { SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY };
enum CoffeeSize { SMALL, MEDIUM, LARGE };
Oui. Si vous faites l'expérience mentale d'implémenter les enums en tant que classes, alors Le fait que vous utilisiez un nom singulier pour le type devrait révéler qu'il est logique d'utiliser des noms singuliers pour de tels enums . Par exemple.,
struct Weekday {};
const Weekday SUNDAY;
const Weekday MONDAY;
const Weekday TUESDAY;
...
void func (Weekday *day)
{
if (day == &SUNDAY)
...
}
Pour qui préfère les pluriels dans les énumérations, voudriez-vous nommer ce struct Weekdays
?
Microsoft recommande en utilisant un nom unique pour les énumérations, à moins que l'attribut Flags
ne soit utilisé. Et tel qu'il est tiré du livre Framework Design Guidelines, vous ne devez pas ajouter de suffixe aux noms de types d'énumération avec Enum, Flags, etc., ni préfixer les valeurs d'énumération avec une abréviation ou un acronyme, comme c'était le cas avec les énumérations VB de la journée.
En général, je considère une définition enum comme une définition de type, ses valeurs étant les différentes valeurs que le type peut avoir; donc il prend un nom singulier:
enum Weekday { SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY };
enum CoffeeSize { SMALL, MEDIUM, LARGE };
Comme C #/convention Microsoft, les énumérations en Java doivent être singulières: http://docs.Oracle.com/javase/tutorial/Java/javaOO/enum.html
C'est subjectif et peu importe ce que vous utilisez, tant que vous êtes cohérent (personnellement, j'utilise le singulier comme un report de mes conventions SQL)