列举时使用单数还是复数? 我认为在声明中使用复数最有意义
enum Weekdays { Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday }
但是我认为单数使用类型更有意义,例如。
Weekday firstDayOfWeek = Weekday.Monday;
我在某处读到一个建议,使用单数与正则枚举和复数与标志,但我想听到一些更多的利弊。
在。NET 框架,大多数“普通”枚举(例如 DayOfWeek)具有单数名称,标志枚举(例如 StringSplitOptions、 BindingFlags)具有复数名称。这是有意义的,因为标志枚举的值可以表示多个项目,但对于非标志枚举,它只能表示单个项目。
DayOfWeek
StringSplitOptions
BindingFlags
一个建议来自.NET 框架设计指引,第59-60页:
要 使用单数类型名称作为枚举,除非它的值是位 田野。 public enum ConsoleColor { Black, Blue, Cyan, ... 是否 对枚举使用复数类型名称,并将位字段作为值,也称为标志枚举。 [Flags] public enum ConsoleModifiers { Alt, Control, Shift }
要 使用单数类型名称作为枚举,除非它的值是位 田野。
public enum ConsoleColor { Black, Blue, Cyan, ...
是否 对枚举使用复数类型名称,并将位字段作为值,也称为标志枚举。
[Flags] public enum ConsoleModifiers { Alt, Control, Shift }
它是主观的,不管您使用什么,只要您是一致的(个人而言,我使用单数作为从我的 Sql 约定继承来的)
一般来说,我认为枚举定义是一个类型定义,枚举的值是该类型可以拥有的不同值; 因此它得到一个单数名称:
enum Weekday { SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY }; enum CoffeeSize { SMALL, MEDIUM, LARGE };
这是微软直接提供的信息:
Http://msdn.microsoft.com/en-us/library/4x252001(vs.71).aspx
对大多数 Enum 使用单数名称 类型,但对 Enum 使用复数名称 types that are bit fields.
Microsoft建议使用单数名称进行枚举,除非它使用 Flags属性。正如框架设计指南一书中所说,你不应该在枚举类型名称后面加上 Enum、 Flags 等等,也不应该在枚举值前面加上缩写或首字母缩写,这在当时的 VB 枚举中是很常见的。
Flags
一般来说,我认为枚举定义是一个类型定义,具有 Enum 是该类型可以具有的不同值; 因此它得到一个单数名称: enum Weekday { SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY }; enum CoffeeSize { SMALL, MEDIUM, LARGE };
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吗?
struct Weekdays