2009-08-25 28 views
0

哪一种命名枚举器是合适的(更可读)?你会考虑:FilterOperators或FilterOperatorType - C#中枚举的正确命名格式

enum FilterOperators 
{ 
    IsEqual, 
    Contains, 
    StartsWith 
} 

class QueryFilter 
{ 
    FilterOperators Operator{get;set;} 
} 

var filter = new QueryFilter(); 
filter.Operator = FilterOperators.IsEqual; 

或者,这是最好

enum FilterOperatorType 
{ 
    IsEqual, 
    Contains, 
    StartsWith 
} 

class QueryFilter 
{ 
    FilterOperators Operator{get;set;} 
} 

var filter = new QueryFilter(); 
filter.Operator = FilterOperatorType.IsEqual; 

此外,颜色的ColorType

回答

3

IrritatedVowel.com提出以下建议:

枚举

标准基于的Microsoft .NET库标准

关注类的命名规则。 不会将“Enum”添加到 枚举名称的末尾。如果枚举 代表一组按位标志,则结尾 这个名称带有复数。

为什么:该公约是一致的 与.NET Framework和容易 读。

实施例:

SearchOptions(位标志)

AcceptRejectRule(正常枚举)

因此,相信优选的选择将是FilterOperator

+0

关于你的最后一个建议,似乎在普遍的做法,你可能有一类“FilterOperator”,这是指定的类型之一,从而来命名枚举“ FilterOperator',会令人困惑。 .NET本身不会这样做,而是使用复数类型。 IE浏览器。 FontFamily.FontFamilies – DeusAduro 2009-08-25 20:39:16

+0

我同意,Type与添加Enum几乎一样多余。我会使用FilterOperator和Color(C#使用Color而不是ColorType) – SwDevMan81 2009-08-25 20:40:33

+0

@ SwDevMan81,很确定.NET使用'Color.Colors'作为枚举,至少在3.5中。 – DeusAduro 2009-08-25 20:43:32

1

我认为所有关于同意标准(你可以自己定义)然后坚持它。我会说追加“类型”似乎是一个好主意,即使像“颜色”这样简单的东西,它可能看起来有点愚蠢。它暗示它是一个枚举,我认为它很好。

我会说去的最后一个例子:)

0

这是非常主观的,但弹出想到的第一件事就是“颜色”令我的许多颜色列表,并似乎是适当的。但是,对于较小的列表,比如'FilterOperatorType','... Type'似乎是合适的。

简而言之,如果他们有很多这个词的复数似乎是适当的,如果他们很少,并且代表广泛的类别'... Type'似乎是适当的。

2

“框架设计指南”说:

  • 不要使用单一类型,除非它是一个位字段
  • 不要使用多种类型的标志枚举(位字段)
  • 不要使用枚举后缀
  • 不要使用标志或标志后缀
  • 不要使用前缀(如ADO ...)

所以我的建议是FilterOperator