关于枚举后缀(种类与类型)的任何指导?

时间:2013-06-07 17:10:11

标签: c# .net api naming-conventions

我正在设计一个供公众使用的.NET API。在我的API中,有一堆枚举,我很难决定用于后缀的约定。

在.NET框架中,我看到使用“Kind”(例如System.DateTimeKind)和“Type”(例如System.IO.DriveType)的示例。

查看mscorlib中的公共枚举,我看到“Type”被更频繁地使用,但两者仍然在一些较新的类型上使用,这意味着它看起来像Microsoft没有遵循任何特定约定。

有没有人建议我在API中使用什么?是否有任何已发布的公约涵盖此主题?

我倾向于使用“Kind”作为后缀,并保留术语“Type”来处理System.Type对象或数据类型。

2 个答案:

答案 0 :(得分:4)

我从Microsoft了解到与枚举相关的唯一命名约定是(来自msdn

  
      
  • 对Enum类型和值名称使用Pascal大小写。
  •   
  • 谨慎使用缩写。
  •   
  • 请勿在枚举类型名称上使用枚举后缀。
  •   
  • 对大多数枚举类型使用单数名称,但对位数字段的枚举类型使用复数名称。
  •   
  • 始终将FlagsAttribute添加到位字段枚举类型。
  •   

它已经很老了,但没有看到与此相关的任何更新。

我认为任何人都不能告诉你针对特定问题的“正确”方法,因为这两种选择都是有效的,而且只是一种品味问题。

我会说你应该与团队达成共识并坚持下去。我认为每个人使用相同的命名约定比使用它更重要。

我个人使用Type后缀,但同样,这只是一个品味问题。

答案 1 :(得分:2)

使用描述性名词短语命名您的枚举,描述枚举 的内容(例如RegexOptionsDateTimeKindBorderStyle等。不要强制使用任意后缀。名称应该来自 的内容。