说明详细的net代码规范.docx
- 文档编号:341625
- 上传时间:2022-10-09
- 格式:DOCX
- 页数:51
- 大小:57.27KB
说明详细的net代码规范.docx
《说明详细的net代码规范.docx》由会员分享,可在线阅读,更多相关《说明详细的net代码规范.docx(51页珍藏版)》请在冰豆网上搜索。
.NET设计规范武汉无线飞翔科技有限公司
.NET设计规范
1命名规范
1.1大小写约定
PascalCasing
将标识符的首字母和后面连接的每个单词的首字母都大写。
可以对三字符或更多字符的标识符使用Pascal大小写。
例如:
BackColor
camelCasing
标识符的首字母小写,而每个后面连接的单词的首字母都大写。
例如:
backColor
对于由多个单词组成的所有公共成员、类ss型及命名空间名称,要使用Pascal大小写。
对参数名称使用大小写混合。
下表汇总了标识符的大小写规则,并提供了不同类型标识符的示例。
表不同类型的标识符的大小写规则
标识符
大小写方式
示例
类
Pascal
AppDomain
枚举类型
Pascal
ErrorLevel
枚举值
Pascal
FatalError
事件
Pascal
ValueChanged
异常类
Pascal
WebException
只读的静态字段
Pascal
RedValue
接口
Pascal
IDisposable
方法
Pascal
ToString
命名空间
Pascal
System.Drawing
参数
Camel
typeName
属性
Pascal
BackColor
首字母缩写词与单词缩写
首字母缩写词是由一个短语的首字母组成的,而单词缩写则仅仅把一个单词的长度变短。
要把两个字母的首字母缩写词全部大写,除非他是camelCasing风格的参数名的第一个单词。
System.IO
publicvoidStartIO(StreamioStream)
要把由三个或三个以上字母组成的首字母缩写词的第一个字母大写。
只有第一个字母大写,除非首字母缩写词是camelCasing风格的标识符的第一个单词。
System.Xml
publicvoidProcessHtmlTag(stringhtmlTag)
在涉及大小写时,大多数复合词术语要作为单个单词处理。
不要把所谓闭合形式的复合词中每个单词的首字母大写。
下表列出一些常用的复合词和常用术语的大小写。
表常用的复合词和常用术语的大小写及拼写
Pascal
Camel
Not
BitFlag
bitFlag
Bitflag
Callback
callback
CallBack
Canceled
canceled
Cancelled
DoNot
doNot
Dont
dmail
Endpoint
dndpoint
EndPoint
FileName
fileName
Filename
Gridline
gridline
GridLine
Hashtable
hashtable
HashTable
Id
id
ID
Indexes
indexes
Indices
LogOff
logOff
LogOut
LogOn
logOn
LogIn
Metadata
metadata
MetaData,metaData
Multipanel
multipanel
MultiPanel
Multiview
multiview
MultiView
Namespace
namespace
NameSpace
Ok
ok
OK
Pi
pi
PI
Placeholder
placeholder
PlaceHolder
SignIn
signIn
SignOn
SignOut
signOut
SignOff
Sql
sql
SQL
UserName
userName
Username
WhiteSpace
whiteSpace
Whitespace
Writable
writable
Writeable
1.2通用命名约定
通用命名约定讨论的是如何为库元素选择最适当的名称。
这些准则适用于所有标识符。
后面各节讨论特定元素(如命名空间或属性)的命名。
选择名称
1.选择易读的标识符名称。
例如,英文属性名称HorizontalAlignment比AlignmentHorizontal更具可读性。
可读性比简洁性更重要。
属性名称CanScrollHorizontally比ScrollableX(指X轴,但意义不明确)更好。
2.不要使用下划线、连字符或任何其他非字母数字字符。
3.不要使用匈牙利表示法。
匈牙利表示法是在标识符中使用一个前缀对参数的某些元数据进行编码,如标识符的数据类型。
4.避免使用与常用编程语言的关键字冲突的标识符。
虽然符合CLS的语言必须提供将关键字用作普通字的方法,最佳做法不要求强制开发人员了解如何实现。
对于大多数编程语言,语言参考文档都会提供语言所使用的关键字列表。
缩写和首字母缩写词
通常,不应使用缩写或首字母缩写词。
这类名称的可读性较差。
同样,要确定某个首字母缩写词是否已受到广泛认可也是很困难的。
不要将缩写或缩略形式用作标识符名称的组成部分。
例如,使用OnButtonClick而不要使用OnBtnClick。
除非必要,不要使用任何未被广泛接受的首字母缩写词。
语言特定的名称
对于类型名称,应使用语义上有意义的名称而不要使用语言特定的关键字。
例如,名称GetLength比GetInt更好。
在标识符的语义含义仅限于其类型的极少数情况下,应使用一般公共语言运行库(CLR)类型名称,而不要使用语言特定的名称。
例如,将数据转换为Int16的方法应命名为ToInt16而不是ToShort,因为Short是Int16的语言特定的类型名称。
在标识符没有语义含义且参数的类型不重要的极少数情况下,应使用通用名称(如值或项),而不要重复类型名称。
1.3程序集和DLL的命名
大多数情况下,程序集包含全部或部分可重用库,且它包含在单个动态链接库(DLL)中。
一个程序集可拆分到多个DLL中,但这非常少见,在此准则中也没有说明。
程序集和DLL是库的物理组织,而命名空间是逻辑组织,其构成应与程序集的组织无关。
命名空间可以且经常跨越多个程序集。
一定要为程序集DLL选择指示大的功能块(如System.Data)的名称。
程序集和DLL的名称不必对应于命名空间名称,但是在命名程序集时遵循命名空间名称这种做法是合理的。
考虑按下面的模式命名DLL:
其中
例如,Contoso.WebControls.dll。
1.4名称空间的命名
为命名空间选择的名称应指示命名空间中的类型所提供的功能。
例如,System.Net.Sockets命名空间包含的类型允许开发人员使用套接字通过网络进行通信。
命名空间名称的一般格式如下:
例如,Microsoft.WindowsMobile.DirectX。
使用公司名称作为命名空间的前缀以防止不同公司开发的命名空间具有相同的名称和前缀。
在命名空间名称的第二级使用稳定的、与版本无关的产品名称。
不要根据组织层次结构确定命名空间层次结构中的名称,因为公司的部门名称经过一段时间后可能会改变。
命名空间名称是长期使用的、不会更改的标识符。
组织的不断发展和变化不应使命名空间名称过时。
使用Pascal大小写格式,并用句点分隔命名空间各部分(如Microsoft.Office.PowerPoint)。
如果您的品牌采用了非传统的大小写,应遵循您的品牌所定义的大小写,即使它与常用的命名空间大小写相背离也如是。
适当的时候可考虑使用复数命名空间名称。
例如,使用System.Collections而不使用System.Collection。
但是,品牌名称和首字母缩写词属于此规则的例外情况。
例如,使用System.IO,而不要使用System.IOs。
命名空间和其中的类型不要使用相同的名称。
例如,不要在将“Debug”用作命名空间名称的同时,又在该命名空间中提供一个名为“Debug”的类。
有些编译器要求对这种类型进行完全限定。
命名空间和类型的名称冲突
如果选择的命名空间或类型的名称与现有名称冲突,则库的用户将不得不对受影响的项的引用进行限定。
在大多数开发情况中,都不应出现这种问题。
本节提供的某些准则适用于下面的命名空间类别:
应用程序模型命名空间
基础结构命名空间
核心命名空间
技术命名空间组
应用程序模型中的命名空间提供特定于应用程序中的某个类的功能集。
例如,System.Windows.Forms命名空间中的类型提供编写Windows窗体客户端应用程序所需的功能。
System.Web命名空间中的类型支持编写基于Web的服务器应用程序。
通常,在同一应用程序中不会使用不同应用程序模型中的命名空间,因此,这降低了名称冲突影响使用您的库的开发人员的可能性。
基础结构应用程序提供专门的支持,很少在程序代码中进行引用。
例如,程序开发工具所使用的*.Designer命名空间中的类型。
*.Permissions命名空间是基础结构命名空间的另一个示例。
与基础结构命名空间中的类型的名称冲突不可能影响使用您的库的开发人员。
核心命名空间是System.*命名空间(不包括应用程序命名空间和基础结构命名空间)。
System和System.Text都是核心命名空间的示例。
应尽可能避免与核心命名空间中的类型发生名称冲突。
属于特定技术的命名空间将具有相同的第一和第二级标识符(Company.technology.*)。
应避免在技术命名空间中出现名称冲突。
命名空间一般准则
不要引入宽泛的类型名称,如Element、Node、Log和Message。
在通常情况下,这样极可能导致类型名称冲突。
应对宽泛的类型名称进行限定(例如FormElement、XmlNodeEventLog、SoapMessage)。
应用程序命名空间准则
不要在单个应用程序模型内为命名空间中的多个类型指定相同的名称。
例如,如果要编写Windows窗体应用程序开发人员要使用的特殊控件库,则不应引入名为Checkbox的类型,因为该应用程序模型已存在同名类型(CheckBox)。
核心命名空间准则
不要指定会与核心命名空间中的任何类型发生冲突的类型名称。
例如,不要使用Directory作为类型名称,因为这会与Directory类型冲突。
技术命名空间准则
不要分配会与单个技术命名空间内的其他类型发生冲突的类型名称。
不要引入会导致技术命名空间的类型与应用程序模型命名空间中的类型发生冲突的类型名称
1.5类、结构和接口的命名
通常,类型名称应该是名词短语,其中名词是由类型表示的实体。
例如,Button、Stack和File都具有名称,用于标识由类型表示的实体。
从开发人员的角度选择标识实体的名称;名称应反映使用场合。
下面的准则适用于如何选择类型名称。
1.按照Pascal大小写格式,使用名词或名词短语(或偶尔使用形容词短语)为类、接口和值类型命名。
2.不要为类名加前缀(如字母C)。
接口不适用此规则,它应以字母I开头。
3.考虑在
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 说明 详细 net 代码 规范