说明详细的net代码规范.docx

上传人:b****2 文档编号:341625 上传时间:2022-10-09 格式:DOCX 页数:51 大小:57.27KB
下载 相关 举报
说明详细的net代码规范.docx_第1页
第1页 / 共51页
说明详细的net代码规范.docx_第2页
第2页 / 共51页
说明详细的net代码规范.docx_第3页
第3页 / 共51页
说明详细的net代码规范.docx_第4页
第4页 / 共51页
说明详细的net代码规范.docx_第5页
第5页 / 共51页
点击查看更多>>
下载资源
资源描述

说明详细的net代码规范.docx

《说明详细的net代码规范.docx》由会员分享,可在线阅读,更多相关《说明详细的net代码规范.docx(51页珍藏版)》请在冰豆网上搜索。

说明详细的net代码规范.docx

.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

Email

dmail

EMail

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:

..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.考虑在

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 考试认证 > IT认证

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1