DoNET 类库设计准则01- 名称规则

1. 标识符的大小写规则
标识符 大小写方式 示例
Pascal AppDomain
枚举类型 Pascal ErrorLevel
枚举值 Pascal FatalError
事件 Pascal ValueChanged
异常类 Pascal WebException
只读的静态字段 Pascal RedValue
接口 Pascal IDisposable
方法 Pascal ToString
命名空间 Pascal System.Drawing
参数 Camel typeName
属性 Pascal BackColor

2. 首字母缩写词(如:DB,Xml, Html)的大小写规则
单词为2个时,在Pascal标识符中全部大写大写如DBHelp
单词为3个以上,在Pascal标识符中首字大写如XmlHelp
单词个数无论为多少,在Camel标识符中都小写,如dbHelp,xmlHelp

3.选择名称
请选择易读的标识符名称,如HorizontalAlignment >AlignmentHorizontal
可读性比简洁性更重要, 如CanScrollHorizontally > ScrollableX
不要使用下划线’_’、连字符’-’或任何其他非字母数字字符,如 workModel > work_model
不要使用匈牙利表示法,如count > intCount

4. 缩写和首字母缩写词
不要将缩写或缩略形式用作标识符名称的组成部分, OnButtonClick > OnBtnClick
除非必要,不要使用任何未被广泛接受的首字母缩写词,ProductDataSet > ProductDS

5. 程序集和 DLL 的名称
一定要为程序集 DLL 选择指示大的功能块(如 System.Data)的名称。程序集和 DLL 的名称不必对应于命名空间名称,但是在命名程序集时遵循命名空间名称这种做法是合理的
考虑按下面的模式命名 DLL:<Company>.<Component>.dll , 其中 <Component> 包含一个或多个以圆点分隔的子句, 如Fast.WebControls.dll

6. 命名空间的名称
命名空间名称的一般格式如下Fast.EB. Encryption: <Company>.(<Product>|<Technology>)[.<Feature>][.<Subnamespace>]
第一级公司名称防止不同公司开发;
第二级使用稳定的、与版本无关的产品名称
使用 Pascal 大小写格式,并用句点分隔命名空间各部分,如 Fast
适当的时候可考虑使用复数命名空间名称。例如, System.Collections > System.Collection;但是,品牌名称和首字母缩写词属于此规则的例外情况。例如,System.IO > System.IOs
命名空间和其中的类型不要使用相同的名称, 如BinarryEncryption > Encryption类
不要引入宽泛的类型名称,如 Element、Node、Log 和 Message,极可能导致类型名称冲突;应对宽泛的类型名称进行限定(例如 FormElement、XmlNode EventLog、SoapMessage);

7. 类、结构和接口的名称
Pascal 大小写格式,如FileMode
不要为类名(除接口外)加前缀(如字母 C),如File> CFile, IFileStream > FileStream
考虑在派生类的末尾使用基类名称, 如 Stream -> FileStream
定义类/接口对, 确保类和接口名称除字母 I外,二者应完全相同,如IFileStream > FileStream
自定义属性名称添加 Attribute 后缀,如ObsoleteAttribute 和 AttributeUsageAttribute
自定义事件名称添加 EventHandler 后缀,如 AutoPostBackEventHandler
System.EventArgs 的派生类添加 EventArgs 后缀,如AutoPostBackEventArgs
System.Exception 的派生类类添加 Exception 后缀,如 DataNotExistsException
System.IO.Stream 的派生类类添加Stream 后缀,如FileStream
枚举值名称中不使用前缀,如Color {Red,Green } > Color {clRed,clGreen }
不要添加 Enum,Flags作为枚举后缀, 如 Color > ColorEnum
位域枚举使用复数名称 ,其他使用单数名称,如 FileReadModes { Read=1, Write=2 }, FileReadMode { Read, Write, ReadWrite}

8. 类成员的名称
方法 : 使用动词或动词短语作为方法的名称,如 Update()
属性 : 使用名词、名词短语或形容词作为属性的名称,如 Length;
属性 : 使用肯定性短语作为布尔值属性的名称。(如 Is、Can 或 Has),如 hasValue。
属性 : 考虑为属性提供与其类型相同的名称,如枚举Color,返回值属性也为Color
事件 : 使用动词或动词短语作为事件的名称, 如Closing,Closed;
事件 : 使用现在时和过去式进行描述,而不用After和Begin如 Closed > AfterClosed
事件 : 使用命名为“sender”和“e”的两个参数,如 Dialog1_Closed(object sender,object e)
字段 : 使用 Camel大小写格式, 如 data 
字段 : 使用名词或名词短语作为字段的名称, 如private int data
字段 : 不要在字段名称中使用前缀(g_ , s_), 如 private int data > g_data

9. 参数名
使用 Camel大小写格式, 如 (object sender)
考虑使用反映参数含义的名称而不是反映参数类型的名称; 如 (object sender)

10. 资源
在资源键中使用 Pascal 大小写格式
使用点分隔符(“.”)以清晰的层次结构表示标识符,如:Menus.FileMenu.Close.Text
posted @ 2009-02-10 10:54  IT-民工  阅读(503)  评论(0编辑  收藏  举报