.NET 程序的命名规则(选自msdn)
一致的命名模式是托管类库中可预知性与可发现性最重要的元素之一。对这些命名指南广泛的使用和理解将消除许多最常见的用户问题。本主题提供
.NET Framework
类型的命名指南。对于每个类型,还应该注意关于大写样式、区分大小写和措词的一些通用规则。
1.
本节内容
描述用于在类库中命名标识符的
Pascal
大小写、
Camel
大小写和全部大写样式。
描述在类库中命名标识符时所遵循的区分大小写指南。
描述在类型名称中使用缩写的指南。
列出类型名称中要避免使用的关键字。
描述如何避免使用语言特定的术语以避免类型名称混淆。
描述命名空间时要遵循的指南。
描述命名类时要遵守的指南。
描述命名接口时要遵循的指南。
描述使用
Attribute
后缀命名属性的正确方式。
描述命名枚举时要遵守的指南。
描述命名静态字段时要遵守的指南。
描述命名参数时要遵守的指南。
描述命名方法时要遵守的指南。
描述命名属性时要遵守的指南。
描述命名事件时要遵守的指南。
一:
大写样式
使用下面的三种大写标识符约定。
Pascal
大小写
将标识符的首字母和后面连接的每个单词的首字母都大写。可以对三字符或更多字符的标识符使用
Pascal
大小写。例如:
B
ackColor
Camel
大小写
标识符的首字母小写,而每个后面连接的单词的首字母都大写。例如:
b
ackColor
大写
标识符中的所有字母都大写。仅对于由两个或者更少字母组成的标识符使用该约定。例如:
System.IO
System.Web.UI
可能还必须大写标识符以维持与现有非托管符号方案的兼容性,在该方案中所有大写字母经常用于枚举和常数值。一般情况下,在使用它们的程序集之外这些字符应当是不可见的。
下表汇总了大写规则,并提供了不同类型的标识符的示例。
标识符
|
大小写方式
|
示例
|
类
|
Pascal
|
AppDomain
|
枚举类型
|
Pascal
|
ErrorLevel
|
枚举值
|
Pascal
|
FatalError
|
事件
|
Pascal
|
ValueChange
|
异常类
|
Pascal
|
WebException
注意
总是以
Exception
后缀结尾。
|
只读的静态字段
|
Pascal
|
RedValue
|
接口
|
Pascal
|
IDisposable
注意
总是以
I
前缀开始。
|
方法
|
Pascal
|
ToString
|
命名空间
|
Pascal
|
System.Drawing
|
参数
|
Camel
|
typeName
|
属性
|
Pascal
|
BackColor
|
受保护的实例字段
|
Camel
|
redValue
注意
很少使用。属性优于使用受保护的实例字段。
|
公共实例字段
|
Pascal
|
RedValue
注意
很少使用。属性优于使用公共实例字段。
|
二:
区分大小写
为了避免混淆和保证跨语言交互操作,请遵循有关区分大小写的使用的下列规则:
·
不要使用要求区分大小写的名称。对于区分大小写和不区分大小写的语言,组件都必须完全可以使用。不区分大小写的语言无法区分同一上下文中仅大小写不同的两个名称。因此,在创建的组件或类中必须避免这种情况。
·
不要创建仅是名称大小写有区别的两个命名空间。例如,不区分大小写的语言无法区分以下两个命名空间声明。
·
namespace ee.cummings;
namespace Ee.Cummings;
·
不要创建具有仅是大小写有区别的参数名称的函数。下面的示例是不正确的。
void MyFunction(string a, string A)
·
不要创建具有仅是大小写有区别的类型名称的命名空间。在下面的示例中,
Point p
和
POINT p
是不适当的类型名称,原因是它们仅在大小写方面有区别。
·
System.Windows.Forms.Point p
System.Windows.Forms.POINT p
·
不要创建具有仅是大小写有区别的属性名称的类型。在下面的示例中,
int Color
和
int COLOR
是不适当的属性名称,原因是它们仅在大小写方面有区别。
·
int Color {get, set}
int COLOR {get, set}
·
不要创建具有仅是大小写有区别的方法名称的类型。在下面的示例中,
calculate
和
Calculate
是不适当的方法名称,原因是它们仅在大小写方面有区别。
·
void calculate()
void Calculate()
三:
缩写
为了避免混淆和保证跨语言交互操作,请遵循有关区缩写的使用的下列规则:
- 不要将缩写或缩略形式用作标识符名称的组成部分。例如,使用GetWindow,而不要使用GetWin。
- 不要使用计算机领域中未被普遍接受的缩写。
- 在适当的时候,使用众所周知的缩写替换冗长的词组名称。例如,用UI作为User Interface 的缩写,用OLAP作为On-line Analytical Processing 的缩写。
- 在使用缩写时,对于超过两个字符长度的缩写,请使用 Pascal 大小写或Camel 大小写。例如,使用 HtmlButton 或 htmlButton。但是,应当大写仅有两个字符的缩写,如,System.IO,而不是System.Io。
- 不要在标识符或参数名称中使用缩写。如果必须使用缩写,对于由多于两个字符所组成的缩写请使用Camel 大小写,虽然这和单词的标准缩写相冲突。
四:
措词
避免使用与常用的
.NET Framework
命名空间重复的类名称。例如,不要将以下任何名称用作类名称:
System
、
Collections
、
Forms
或
UI
。有关
.NET Framework
命名空间的列表,请参见
类库
。
另外,避免使用和以下关键字冲突的标识符。
AddHandler
|
AddressOf
|
Alias
|
And
|
Ansi
|
As
|
Assembly
|
Auto
|
Base
|
Boolean
|
ByRef
|
Byte
|
ByVal
|
Call
|
Case
|
Catch
|
CBool
|
CByte
|
CChar
|
CDate
|
CDec
|
CDbl
|
Char
|
CInt
|
Class
|
CLng
|
CObj
|
Const
|
CShort
|
CSng
|
CStr
|
CType
|
Date
|
Decimal
|
Declare
|
Default
|
Delegate
|
Dim
|
Do
|
Double
|
Each
|
Else
|
ElseIf
|
End
|
Enum
|
Erase
|
Error
|
Event
|
Exit
|
ExternalSource
|
False
|
Finalize
|
Finally
|
Float
|
For
|
Friend
|
Function
|
Get
|
GetType
|