命名约定:动词/名词和英语语法使用指南

时间:2009-01-05 11:18:52

标签: c# .net naming-conventions

有人能指出我的网站,或者给我一些关于如何选择接口,类甚至与该对象或方法相关的方法和属性的名称的智慧?

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

示例可能有所帮助:我有4个选择的接口名称:

IGroupedItem
IGroupableItem
IDataEntity
IGroupedEntity

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

编辑:虽然示例是一个界面,但我并不仅限于接口。一般准则是类是名词,方法动词,属性名词。我想我的意思是同义词的选择。将“实体”扔到哪里都错了

8 个答案:

答案 0 :(得分:19)

查看MSDN articles的命名指南。简而言之:

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

对于您的示例 - IGroupableItem。

答案 1 :(得分:8)

接口是类能够做的事情。不是 ,而是做什么

IGroupableItem

其他名称描述了什么事情或者过于模糊而无用。

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

答案 2 :(得分:4)

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

答案 3 :(得分:1)

这与Spodi的答案相同,但是MSDN的Design Guidelines for Class Library Developers非常出色,涵盖naming等等。

答案 4 :(得分:1)

有好文章 Making Wrong Code Look Wrong 作者:Joel Spolsky。它讲述了不那么受欢迎但非常方便的命名惯例。

答案 5 :(得分:1)

除了MSDN指南之外,Juval Lowy还提供了来自IDesign的C#编码标准文档非常有用(不知道这与MSDN有多少差异)。

C# Coding Standards

答案 6 :(得分:0)

答案 7 :(得分:0)

对于具有功能(等)名称的动词,通常使用动词的原始形式,例如HandleExecuteQueryIsAny,...

动词的用法较少,使得它们与s/es一样,例如ProducesResponseTypeMS Docs)。