C# 有关于枚举后缀(种类与类型)的指导吗?
我正在设计一个供公众使用的.NETAPI。在我的API中,有一堆枚举,我正在努力确定后缀使用的约定 在.NET framework中,我看到了同时使用“种类”(例如C# 有关于枚举后缀(种类与类型)的指导吗?,c#,.net,api,naming-conventions,C#,.net,Api,Naming Conventions,我正在设计一个供公众使用的.NETAPI。在我的API中,有一堆枚举,我正在努力确定后缀使用的约定 在.NET framework中,我看到了同时使用“种类”(例如System.DateTimeKind)和“类型”(例如System.IO.DriveType)的示例 查看mscorlib中的公共枚举,我发现“Type”的使用频率更高,但在一些较新的类型中,这两种类型仍然使用,这意味着微软似乎没有遵循任何特定的约定 有人对在我的API中使用什么有什么建议吗?有没有关于这个主题的公开的约定 我倾向于
System.DateTimeKind
)和“类型”(例如System.IO.DriveType
)的示例
查看mscorlib中的公共枚举,我发现“Type”的使用频率更高,但在一些较新的类型中,这两种类型仍然使用,这意味着微软似乎没有遵循任何特定的约定
有人对在我的API中使用什么有什么建议吗?有没有关于这个主题的公开的约定
我倾向于使用“Kind”作为后缀,并保留术语“Type”来处理
System.Type
对象或数据类型。我从Microsoft知道的有关枚举的唯一命名约定是(从)
- 枚举类型和值名称使用Pascal大小写
- 少用缩写
- 不要在枚举类型名称上使用枚举后缀
- 对大多数枚举类型使用单数名称,但对位字段的枚举类型使用复数名称
- 始终将FlagsAttribute添加到位字段枚举类型
我个人使用
类型
后缀,但同样,这只是口味的问题。用描述性名词短语描述枚举是什么(例如,RegexOptions
,DateTimeKind
,BorderStyle
,等等)。不要强制使用任意后缀。这个名字应该来自事物本身,但是“种类”和“类型”是可以互换的。我不喜欢在同一件事上使用两个术语的API。最好的建议可能是避免使用任何一个术语。它们都缺乏具体性,也无法传达有意义的信息。有时你的分类会是这样的,相当抽象,但你通常可以用一个更有意义的词,比如Method或Tier,作为你的后缀。试着大声朗读你键入的内容,或者如果英语不是一种你有信心使用的语言,请其他人这样做。有些对象/概念使用“类型”更好,另一些使用“种类”或“模式”或完全不同的东西更好。目标是使代码可读—编写示例用法并大声朗读…DateTimeKind
和DateTimeType
听起来都不错。我不担心它听起来如何(我知道如何让它听起来正确)。我只想在我的API中保持一致性。从某种意义上说,这是API的复制品。我想你可以在那里找到一些指导。强制所有/大多数枚举(或其他类型)具有相同的后缀可能不会提高代码的可编辑性。。。关于DateTimeKind/Type
,我认为这两种方法都相对不好,因为对于一个人来说,没有办法知道这样的枚举需要什么样的值。但由于时区在口语中并没有被广泛使用,并没有更好的选择。更有用的名称datetimezone
与表示该概念实例的类冲突。(+1表示罗伯·林登(Rob Lyndon)对试图避免这两种情况的评论)我认为他们可能使用Kind
而不是Type
,因为Type通常指System.Type
。如果在非类型
的参数名称中使用类型
后缀,则StyleCop会投诉。。。