|
NET简明编码规范
——Extracted from “.NET Framework General Reference
Design Guidelines for Class Library Developers”
版本:V1.0
1 Namespace 命名规范
使用 公司名.产品名 这样的格式。
Namespace中类的依赖关系应该体现在命名上,比如System.Web.UI.Design中的类以来于System.Web.UI。
使用 Pascal case 命名。
当商标(产品名)的命名风格和Pascal case不相符的时候,以商标(产品名)为准。
在语意合适的情况下使用复数,比如System.Collections。例外是缩写和商标的情况。
Namespace的名字不一定和Assembly一一对应。
2 Class 命名规范
使用名词或者名词性词组命名class。
使用 Pascal case。
保守地使用缩写。
不使用type前缀,例如C来标识Class。比如,使用FileStream而不是CFileStream。
不使用下划线。
偶尔的在Class名称组成中需要使用I开头的时候,比如IdentityStore,just use it。
在合适的时候,使用单词复合来标识从某个基类继承而来。比如xxxException。
3 Interface 命名规范
使用名词或者名词性词组命名Interface。
使用 Pascal case。
保守地使用缩写。
在interface 名称前加上字母I来表示type是interface。
在某个class是某个interface地标准实现地时候,用类似的名字来命名它们,仅仅在interface的名称前面多个I。
不要使用下划线。
4 Attribute 命名规范
总是给Attribute类加上Attribute后缀。
5 Enumeration Type 命名规范
对Enum类型和值使用Pascal case。
不要在Enum类型名称后面加上Enum后缀。
对于大多数Enum类型使用单数名称,仅仅在这个Enum类型是bit fields地时候使用复数形式。
总是给bit field Enum 类型添加FlagsAttribute。
6 Static Field 命名规范
使用名词、名词性词组或者名词地缩写来命名static fields。
使用Pascal case。
不要在static field名称中使用匈牙利命名法。
在任何可能的情况下推荐你使用静态properties而不是public static fields。
7 Parameter 命名规范
对于parameter名称使用camel case。
使用描述性的名称。参数名字应该在大多数场合下它的名字加上类型足够描述它的意义。
使用描述参数的意义的名字而不是描述参数类型的名字。开发工具应该提供有关参数类型的有意义的信息。因而,参数的名字可以用于更好的描述意义。保守地使用基于类型的参数名字,仅仅在它们是合适的场合下使用。
不要使用保留的参数。
不要使用匈牙利命名法。
8 Method 命名规范
使用动词或者动词性词组命名。
使用Pascal case。
9 Property 命名规范
使用名词或者名词性词组命名。
使用Pascal case。
不要使用匈牙利命名法。
考虑使用和property type名字相同的名字作为property name。
10 Event 命名规范
使用Pascal case。
不要使用匈牙利命名法。
在event handler名字中使用EventHandler后缀。
指定两个名字分别为sender和e的参数。sender参数代表了发出事件的对象。sender参数总是类型object,即使可能使用一个更加精确的类型。和事件相关的状态封装在名字为e的event class的实体之中。给e指定恰当而且明确的event class。
使用EventArgs后缀命名事件参数class。
考虑使用动词命名事件。使用进行时态来标识事件正在进行之中,使用完成时态标识事件已经完成,不要使用BeforeXxx/AfterXxx命名法。
不要在事件声明中使用前缀和后缀,比如,用Close而不是OnClose。
一般的,你应该同时提供一个名字为OnXxx的protected method供派生类来改写。
|