Au singulier ou au pluriel pour les énumérations?

utilisez-vous le singulier ou le pluriel pour les énumérations? Je pense qu'il a le meilleur sens avec le pluriel dans la déclaration

enum Weekdays
{
    Monday,
    Tuesday,
    Wednesday,
    Thursday,
    Friday,
    Saturday,
    Sunday
}

... mais je pense qu'il est plus logique avec le singulier en utilisant le type, par exemple

Weekday firstDayOfWeek = Weekday.Monday;

j'ai lu une recommandation quelque part pour utiliser le singulier avec des enums réguliers et le pluriel avec des drapeaux, mais je voudrais entendre plus de pour et contre.

61
demandé sur Jan Aagaard 2009-08-26 20:26:57

8 réponses

ici, il est tout droit de Microsoft:

http://msdn.microsoft.com/en-us/library/4x252001 (VS.71).aspx

utilisez un nom au singulier pour most Enum types, mais utilisez un nom au pluriel pour Enum les types qui sont des champs de bits.

66
répondu Matt Ruwe 2009-08-26 16:32:52

une recommandation provient du .NET Framework Design Guidelines , page 59-60:

Do utilisez un nom de type singulier pour une énumération, sauf si ses valeurs sont bit Fields.

public enum ConsoleColor {
  Black,
  Blue,
  Cyan,
  ...

Do utilisez un nom de type pluriel pour une énumération avec des champs bit comme valeurs, également appelé un drapeau enum.

[Flags]
public enum ConsoleModifiers {
  Alt,
  Control,
  Shift
}
20
répondu Michael Petrotta 2009-08-26 16:30:45

dans le cadre .NET, la plupart des énums" normaux "(par exemple DayOfWeek ) ont des noms au singulier et les énums de drapeau (par exemple StringSplitOptions , BindingFlags ) ont des noms au pluriel. Il est logique, puisqu'une valeur d'un indicateur enum peut représenter plusieurs articles, mais pour un non-drapeau enum, il ne peut représenter qu'un seul élément.

11
répondu Mehrdad Afshari 2009-08-26 16:28:43

Microsoft recommande en utilisant un nom singulier pour les énumérations à moins qu'il n'utilise l'attribut Flags . Et comme tiré du Framework Design Guidelines book vous ne devriez pas suffixer les noms de type d'énumération avec Enum, drapeaux, etc. et vous ne devez pas préfixer les valeurs d'énumération avec une abréviation ou un acronyme comme c'était commun avec les énumérations VB de l'époque.

2
répondu Brian Gideon 2009-08-26 16:35:07

en général, je considère qu'une définition enum est une définition de type, avec les valeurs de enum étant les différentes valeurs que le type peut avoir; il obtient donc 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 de la mise en œuvre des énums en tant que classes, puis le fait que vous utilisez un nom singulier pour le type de révéler qu'il judicieux d'utiliser des noms singuliers pour de telles énumérations . E. g.,

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 en énums, nommez-vous ce struct Weekdays ?

2
répondu Pedro Alves 2011-11-16 10:57:50

en général, je considère qu'une définition enum est une définition de type, avec les valeurs de l'enum étant les différentes valeurs que le type peut avoir; par conséquent, il obtient un nom singulier:

enum Weekday { SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY };

enum CoffeeSize { SMALL, MEDIUM, LARGE };
1
répondu Avi 2009-08-26 16:32:21

comme C# / Microsoft convention, enums en Java devrait être au singulier: http://docs.oracle.com/javase/tutorial/java/javaOO/enum.html

0
répondu tanguy_k 2017-09-17 22:15:19

c'est subjectif et peu importe ce que vous utilisez, aussi longtemps que vous êtes cohérent (personnellement j'utilise le singulier comme un report de mes conventions Sql)

-1
répondu Jaimal Chohan 2009-08-26 16:31:17