2009-01-05 104 views
15

任何人都可以指向我的网站,或者给我一些关于如何选择接口,类的名称甚至是与那些对象有关的方法和属性的智慧或方法呢?命名约定:动词/名词和英语语法使用指南

这是专门针对微软开发的,所以Java-esque“doGet”等并没有真正使用,但是一些跨语言障碍的一般规则必须(我会认为)存在。

一个例子可能帮助:我有一个接口4个选项的名称:

IGroupedItem 
IGroupableItem 
IDataEntity 
IGroupedEntity 

它们都含有一个形容词和名词,或者只是一个名词。看看.NET框架,为了一致性,它似乎必须有某种规则集?除了明显的方法动词之外。

编辑:虽然这个例子是一个接口,但我并没有将其限制为接口。一般的指导方针是类名词,方法动词,属性名词。我想我的意思是选择同义词。投掷“实体”到处都是错误的

回答

16

看命名指南的MSDN articles。总之:

  • 的类名和属性名使用名词(很明显)
  • 对于接口的名字,开始我并使用的名词和/或形容词来描述行为
  • 方法名称使用动词描述动作

对于你的例子 - IGroupableItem。

+1

那么为什么不是IGroupedItem?这符合名词和形容词的标准,或名词短语 – 2009-01-05 15:30:12

4

MSDN在Interface Naming Guidelines上有一篇文章可以帮助你。如果您想要接口以外的其他命名约定,以及其他许多命名和设计准则,您也可以在MSDN上找到所有这些命名约定。

7

接口是一类有能力做的事情。不是什么它,但它可以

IGroupableItem 

其他名称描述什么东西或含义太模糊,无用。

具体来说,“IDataEntity”在很大程度上是没有意义的。毕竟,一切都是数据实体。

+3

并不总是如此干净切虽然是它?比照ICollection,IAsyncResult,IHasXmlNode – annakata 2009-01-05 11:44:49

+3

@annakata:一些基础结构名称必须模糊。但应用程序名称应该更具体。 – 2009-01-05 11:55:33

1

除了MSDN的指引,有一个用C#朱瓦尔·洛从IDesign编码标准文档是非常有帮助的(不知道是否/多少这与MSDN不同)。

C# Coding Standards