枚举时使用单数还是复数?我认为在声明中使用复数最有意义
enum Weekdays
{
    Monday,
    Tuesday,
    Wednesday,
    Thursday,
    Friday,
    Saturday,
    Sunday
}
...但我认为在使用类型时使用单数更有意义,例如
Weekday firstDayOfWeek = Weekday.Monday;
我在某处读到了使用单数与常规枚举和复数与标志的建议,但我想听听更多的利弊。
枚举时使用单数还是复数?我认为在声明中使用复数最有意义
enum Weekdays
{
    Monday,
    Tuesday,
    Wednesday,
    Thursday,
    Friday,
    Saturday,
    Sunday
}
...但我认为在使用类型时使用单数更有意义,例如
Weekday firstDayOfWeek = Weekday.Monday;
我在某处读到了使用单数与常规枚举和复数与标志的建议,但我想听听更多的利弊。
这里直接来自微软:
http://msdn.microsoft.com/en-us/library/4x252001(VS.71).aspx
对大多数 Enum 类型使用单数名称,但对作为位字段的 Enum 类型使用复数名称。
一项建议来自 .NET Framework Design Guidelines,第 59-60 页:
对枚举使用单数类型名称,除非它的值是位字段。
public enum ConsoleColor { Black, Blue, Cyan, ...对于以位字段为值的枚举,请使用复数类型名称,也称为标志枚举。
[Flags] public enum ConsoleModifiers { Alt, Control, Shift }
在 .NET Framework 中,大多数“普通”枚举(例如DayOfWeek)具有单数名称,而标志枚举(例如StringSplitOptions, BindingFlags)具有复数名称。这是有道理的,因为标志枚举的值可以表示多个项目,但对于非标志枚举,它只能表示单个项目。
一般来说,我认为枚举定义是一种类型定义,枚举的值是该类型可以具有的不同值;因此它有一个单数名称:
enum Weekday { SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY };enum CoffeeSize { SMALL, MEDIUM, LARGE };
是的。如果您有将枚举实现为类的心理体验,那么您为类型使用单数名称这一事实应该表明,对此类枚举使用单数名称是有意义的。例如,
struct Weekday {};
const Weekday SUNDAY;
const Weekday MONDAY;
const Weekday TUESDAY;
...
void func (Weekday *day)
{
   if (day == &SUNDAY)
       ...
}
对于谁更喜欢枚举中的复数,你会命名struct Weekdays吗?
一般来说,我认为枚举定义是一种类型定义,枚举的值是该类型可以具有的不同值;因此它有一个单数名称:
enum Weekday { SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY };
enum CoffeeSize { SMALL, MEDIUM, LARGE };
    Microsoft建议对枚举使用单数名称,除非它使用Flags属性。并且从《框架设计指南》一书中,你不应该在枚举类型名称后面加上 Enum、Flags 等,并且你不应该在枚举值前面加上缩写或首字母缩略词,这在当时的 VB 枚举中很常见。
这是主观的,你使用什么并不重要,只要你是一致的(我个人使用单数作为我的 Sql 约定的继承)