附录15C#编程规范.docx

上传人:b****5 文档编号:14458645 上传时间:2023-06-23 格式:DOCX 页数:13 大小:21.56KB
下载 相关 举报
附录15C#编程规范.docx_第1页
第1页 / 共13页
附录15C#编程规范.docx_第2页
第2页 / 共13页
附录15C#编程规范.docx_第3页
第3页 / 共13页
附录15C#编程规范.docx_第4页
第4页 / 共13页
附录15C#编程规范.docx_第5页
第5页 / 共13页
附录15C#编程规范.docx_第6页
第6页 / 共13页
附录15C#编程规范.docx_第7页
第7页 / 共13页
附录15C#编程规范.docx_第8页
第8页 / 共13页
附录15C#编程规范.docx_第9页
第9页 / 共13页
附录15C#编程规范.docx_第10页
第10页 / 共13页
附录15C#编程规范.docx_第11页
第11页 / 共13页
附录15C#编程规范.docx_第12页
第12页 / 共13页
附录15C#编程规范.docx_第13页
第13页 / 共13页
亲,该文档总共13页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

附录15C#编程规范.docx

《附录15C#编程规范.docx》由会员分享,可在线阅读,更多相关《附录15C#编程规范.docx(13页珍藏版)》请在冰点文库上搜索。

附录15C#编程规范.docx

附录15C#编程规范

C#编程规范

 

目录

1.关于本文档3

2.代码结构3

2.1关于Using3

2.2类结构3

2.3代码格式4

2.4注释4

2.4.1要点4

2.4.2必须加注释的地方4

2.4.3注释规范4

2.4.4使用注释添加TaskList5

2.5编码技巧5

3.命名规则5

3.1大小写样式5

3.2基本命名规则6

3.3文件和文件夹6

3.4命名空间7

3.5窗体与控件7

3.6类7

3.7接口7

3.8特性类(Attribute)8

3.9集合(Enum)8

3.10函数8

3.11属性(Property)9

3.12变量(字段)9

3.13常量9

3.14事件10

1.关于本文档

本文档为规范公司内部使用C#开发.net应用程序而定,做为衡量个人代码质量的标准。

本文档为公司内部保密文档,未经蓝阵软件公司允许,任何人将本文档带离公司或公布给其他人,都将视为泄密行为。

2.代码结构

2.1关于Using

●所有对其他类的引用必须显示声明在代码的最上方,以便于查看此类对其他类的依赖关系。

●对.net框架中的类引用放在前面,对程序中自定义的类引用放在后面。

例如:

usingSystem;

usingSystem.Data;

usingSystem.Text.RegularExpressions;

usingDuwamish7.SystemFramework;

usingDuwamish7.Common;

usingDuwamish7.Common.Data;

usingDuwamish7.DataAccess;

2.2类结构

●编写代码时,类中成员必须按照顺序排列,依次为:

●静态字段及静态属性(如果是对应于属性的字段紧挨属性放在其上方)

●静态方法

●常量

●实例字段及属性(如果是对应于属性的字段紧挨属性放在其上方)

●索引器

●事件

●构造函数与析构函数

●实例成员方法

2.3代码格式

●用缩进对齐代码,缩进大小为四个空格。

●在括号对对齐的位置垂直对齐左括号和右括号,如:

for(i=0;i<100;i++)

{

...

}

●代码和注释每行以最多不得超过120个字符,以避免在查看代码时横向滚动编辑器。

●在函数中使用空行将代码分隔成若干个段,段间有较大的语义区别。

●编写HTML时,尽量按照XHTML规范,所有标记和属性都小写,属性值加双引号。

●将每个主要的SQL子句放在不同的行上,这样更容易阅读和编辑语句,例如:

SELECTFirstName,LastName

FROMCustomers

WHEREState='WA'

2.4注释

2.4.1要点

●不要代码行的末尾添加注释;行尾注释使代码更难阅读。

●在编写注释时使用完整的句子,准确清楚的阐明代码,句子不可有多义性。

●必须在编写代码时就注释,因为事后做浪费时间并且效果很差。

●不要使用一整行星号,井号或减号,给块注释的周围加上边框,这样看起来很漂亮,但是难于维护,而是应该使用空白将注释同代码分开。

但如果需要对整个文件进行说明的话,可以在文件的最顶部使用注释边框。

●在部署之前,移除所有临时或无关的注释,以避免在日后的维护工作中产生混乱。

2.4.2必须加注释的地方

●类的说明。

●类成员说明,特别是函数说明。

●如函数较长,须用空行将函数分成若干个段,并对每段进行注释。

●函数中有逻辑分支的地方

2.4.3注释规范

●类及类成员说明

使用三斜杠“///”进行注释,以便自动生成程序说明文档。

在///后使用下列XML标记:

描述类型成员。

指定类或其他类型的概述信息。

在方法声明的注释中使用以描述该方法的一个参数。

在方法声明的注释中使用以描述返回值。

在注释中开始一个新段落。

详见VisualStudio帮助中的【创建代码报告】

ms-help:

//MS.VSCC/MS.MSDNVS.2052/vsintro7/html/vxconCommentingCode.htm

加入XML标记后,就可以使用VisualStudio提供的工具自动生成程序说明文档(方法是在菜单中选择【工具】->【生成注释web页】。

●函数中的注释

函数中使用双斜杠“//”进行注释。

2.4.4使用注释添加TaskList

在编程中,如果需要同时改多处地方,可以使用注释将需要改动的地方加入到TaskList中。

添加Task的方法是:

在需要改动的地方写格式为“//TODO……”的注释,如“//TODO修改此处的计算金额的逻辑”,然后按快捷键【Ctrl-Alt-K】打开TaskList窗口,就会发现在TaskList中出现任务提示。

删除Task的方法是:

将“//TODO……”从代码中删掉,TaskList中就会自动将这个Task去掉了。

2.5编码技巧

●在函数中声明变量时,不要在函数开始处声明所有的变量,要在离变量使用处最近的地方进行声明,这样可大大提高可读性。

3.命名规则

本命名规则参考了以下文档:

1.VisualS->使用VisualStudio.NET进行开发->处理代码,HTML和资源文件->编码方法和编程做法->编码方法

ms-help:

//MS.VSCC/MS.MSDNVS.2052/vsent7/html/vxconcodingtechniques.htm

2.DotNet框架――参考――类库开发人员设计指南――命名指南

ms-help:

//MS.VSCC/MS.MSDNVS.2052/cpgenref/html/cpconnamingguidelines.htm

3.1大小写样式

C#中使用下面的三种大写标识符约定:

说明

例子

Pascal大小写

将标识符的首字母和后面连接的每个单词的首字母都大写。

可以对三字符或更多字符的标识符使用Pascal大小写。

BackColor

Camel大小写

标识符的首字母小写,而每个后面连接的单词的首字母都大写

backColor

大写

标识符中的所有字母都大写。

仅对于由两个或者更少字母组成的标识符使用该约定

System.IO

System.Web.UI

下表汇总了标识符的大小规则:

标识符

大小写

示例

说明

命名空间

Pascal

System.Drawing

 

Pascal

AppDomain

 

异常类

Pascal

WebException

总是以Exception后缀结尾

特性类(Attribute)

Pascal

ObsoleteAttribute

总是以Attribute后缀结尾

接口

Pascal

IDisposable

总是以I前缀开始

枚举类型

Pascal

ErrorLevel

 

枚举值

Pascal

FatalError

 

事件

Pascal

ValueChange

 

属性

Pascal

BackColor

 

方法

Pascal

ToString

 

常量

大写

DATAACCESS_CONNECTIONSTRING

使用下划线分隔单词

public字段

Pascal

RedValue

protected字段

Camel

_redValue

总是以下划线"_"前缀开始

private字段

Camel

_redValue

总是以下划线"_"前缀开始

参数

Camel

typeName

 

局部变量

Camel

userName

 

3.2基本命名规则

●命名要求能精确描述标识符的含义,避免容易被主观解释的难懂的名称,如AnalyzeThis(),这样的名称会导致多义性。

●避免使用仅仅是大小写不同的标识符,如:

voidcalculate()和voidCalculate()

●避免对不同的元素重用名称,如名为ProcessSales()的函数和名为ProcessSales的变量。

●标识符(包括参数名)中不要使用缩写。

如果必须使用缩写,任何超过两个字符以上的缩写都使用camel大写格式,即使这不是标准缩写。

两个字母的所写可以采用大写格式,如GC,UI等。

●除了在定义常量和private,protect字段外,其他标识符不得使用下滑线。

●不要使用匈牙利命名法。

3.3文件和文件夹

●使用Pascal大小写命名文件和文件夹。

●对于image,javascript,css等文件夹可以使用小写命名。

●文件和文件夹的名称应该精确地说明它们的用途。

●文件和文件夹名字中不得使用下划线。

●对于界面文件,文件的命名为“动词+名词”结构,清楚的说明用户想在这个界面达到什么目的,如:

InputOrder.aspx,BrowseOrderSummary.aspx,BrowseOrderDetailInformation.aspx。

●要有明确的统一的原则将文件分成文件夹。

3.4命名空间

●使用Pascal大小写。

●不要为命名空间和类使用相同的名称。

例如,不要既提供Debug命名空间也提供Debug类。

●嵌套的命名空间应当在包含它的命名空间中的类型上有依赖项。

例如,System.Web.UI.Design中的类依赖于System.Web.UI中的类。

但是,System.Web.UI中的类不依赖于System.UI.Design中的类。

●命名一个命名空间,该命名空间包含为具有.Design后缀的基命名空间提供设计时功能的类型。

例如,System.Windows.Forms.Design命名空间包含用于设计基于System.Windows.Forms的应用程序的设计器和相关的类。

●如果在语义上适当,使用复数命名空间名称。

例如,使用System.Collections而不是System.Collection。

3.5窗体与控件

 

命名规则

例子

WinForm窗体

Form+【窗体含义】

FormEngineer

WinForm控件

【控件类名】+【控件含义】

textBoxUserName

WebForm窗体

【窗体含义】

Login.aspx

WebForm控件

【控件类名】+【控件含义】

buttonSubmit

3.6类

●用名词或名词短语命名类。

●使用Pascal大写。

●不要使用任何类前缀(比如C)。

3.7接口

●使用名词或名词短语,或者描述行为的形容词来命名接口。

例如,IComponent(描述性名词),ICustomAttributeProvider(名词短语),和IPersistable(形容词)。

●使用Pascal大写,前面加前缀I。

●当类是接口的标准执行时,定义这一对类/接口组合就要使用相似的名称。

两个名称的不同之处只是接口名前有一个I前缀。

3.8特性类(Attribute)

●使用Pascal大小写。

●加Attribute后缀定义特性类。

如:

publicclassObsoleteAttribute{}

3.9集合(Enum)

●使用名词或名词性短语命名Enum名和Enum值。

●Enum名需使用Pascal大写,Enum值需使用Pascal大写。

●Enum值前不要加前缀(例如,adxxx表示ADOenums)

●enum名不要加Enum后缀。

●Enum名需使用单数名词。

●如果参数或属性的取值是列举值,需用一个enum来定义列举值,如:

publicenumFileMode{

Create,

CreateNew,

Open,

OpenOrCreate,

Truncate

}

●只有在值可以被完全表示为一组位标志时,才使用enum。

开集不能使用enum(例如操作系统版)。

●在封装一个Win32API时,可以使用Win32大写。

3.10函数

●使用Pascal大小写命名函数。

●用camel大小写方式命名参数。

●使用动词-名词的方法来命名函数,如CalculateInvoiceTotal()。

●通常情况下,函数不得超过200行。

●当参数超过一个时要断行,并且用两个tab缩进,如:

privateBookDataFillBookData(

StringcommandText,

StringparamName,

StringparamValue)

●函数中引用类的实例成员(包括变量和方法)时,前面要用this限定。

函数中引用类的静态成员时,前面不加任何限定。

3.11属性(Property)

●使用Pascal大小写命名属性。

●使用与属性的基础类型相同的名称创建属性,如:

publicenumColor

{

//InsertcodeforEnumhere.

}

publicclassControl

{

publicColorColor//不要使用publicintColor

{

get{//Insertcodehere.}

set{//Insertcodehere.}

}

}

●在属性的名称中包含类名是多余的,如Book.BookTitle,应该使用Book.Title。

3.12变量(字段)

●使用名词或名词性短语命名变量。

●public字段使用Pascal大小写格式,

protected和private字段前面使用加下滑线的camel大小写格式,

局部变量(函数中的变量)使用camel大小写格式。

●禁止使用temp做为变量名。

●在命名状态变量时,禁止使用诸如Flag的术语。

例如:

不能使用documentFlag,而是使用更具描述性的名称,如documentFormatType。

●布尔变量名应该包含Is,这意味着Yes/No或True/False值,如isFileFound。

●对于短循环索引使用单字母变量名,如i或j。

●可以在变量名的末尾追加计算限定符(Avg、Sum、Min、Max、Index)。

●如果变量中有成对的反义词,使用标准的反义词对,如min/max、begin/end和open/close。

3.13常量

使用大写格式命名变量,单词间以下划线分隔。

●不要使用“幻数”,“幻数”指的是在程序中不加解释的常量,应该使用命名常量代替“幻数”。

如:

for(inti=1;i<=7;i++)(错误写法)

for(inti=1;i<=DAYS_IN_WEEK;i++)(正确写法)

3.14事件

●用动词命名事件。

●使用Pascal大小写命名事件。

●对事件处理程序名称使用EventHandler后缀。

●指定两个名为sender和e的参数。

sender参数表示引发事件的对象。

sender参数始终是object类型的,即使在可以使用更为特定的类型时也如此。

与事件相关联的状态封装在名为e的事件类的实例中,对e参数类型使用适当而特定的事件类。

●用EventArgs后缀命名事件参数类。

●命名事件名时,需要有之前和之后的时态概念,因此要使用现在时态和过去时态(不要使用BeforeXxx\AfterXxx的方式)。

例如,可以被取消的结束事件就有Closing事件和Closed事件。

●不要使用前缀或者后缀。

例如,使用Close,而不要使用OnClose。

●对于可以在派生类中重写的事件,应在类型上提供一个受保护的方法(OnXxx)。

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

当前位置:首页 > 农林牧渔 > 林学

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2