编码规范.docx

上传人:b****4 文档编号:4024464 上传时间:2022-11-27 格式:DOCX 页数:12 大小:230.42KB
下载 相关 举报
编码规范.docx_第1页
第1页 / 共12页
编码规范.docx_第2页
第2页 / 共12页
编码规范.docx_第3页
第3页 / 共12页
编码规范.docx_第4页
第4页 / 共12页
编码规范.docx_第5页
第5页 / 共12页
点击查看更多>>
下载资源
资源描述

编码规范.docx

《编码规范.docx》由会员分享,可在线阅读,更多相关《编码规范.docx(12页珍藏版)》请在冰豆网上搜索。

编码规范.docx

编码规范

 

C#编码规范

 

1.编写目的

编写本文档主要有以下几点目标:

1.使用统一编码规范的主要原因,是使应用程序的结构和编码风格标准化,以便于阅读和理解这段编码。

2.好的编码约定可使源代码严谨、可读性强且意义清楚,与其它语言约定相一致,并且尽可能的直观。

2.适用范围

1.本文档主要以C#为开发语言的规范,不适用于数据库开发规范,数据库开发相关规范请参考相关文档;

2.本文档结合公司开发流程及编码习惯,针对文件、变量、控件、方法和代码注释等命名规则进行详细描述,对于具体的实施项目,可能需要对其进行补充或修改。

3.适用人员:

所有开人员;

4.适用产品:

所有以C#编写的代码。

3.具体编码规范

3.1命名空间

namespace关键字使得我们可以通过创建作用范围来对全局命名空间进行分隔。

本质上来讲,一个命名空间就定义了一个范围。

定义命名空间时应尽量使用大写的英文单词或单词缩写,基本形式如下图:

 

3.2文件命名规范

1.文件主体名必须用名词或动名词,且主体名必须是单词首字母大写的方式表示,如:

合并规则的窗体可以命名为NewMerge.cs。

切记不能使用拼音来表示具体的窗体或类的命名,并且在选取英文单词表示时,不要选用一些生冷偏僻的单词,使得代码可读性降低。

2.文件名必须采用在不影响原意表达时应尽量采用单词缩写的形式命名,以达到文件名的简洁明了的命名目的,如:

应收帐款批次转凭证窗体的完整窗体名为frmTransferAccountsReceivable.cs,这时的窗体文件名太长,可以采用简写的方式,应收帐款专业简写为AR,我们可以采取这种公认的或专业的简写名词命名,最后可以命名为frmTransAR。

3.文件名要和类名匹配,如下图:

3.3控件命名规范

C#编码时,为了更直观地遍历整个窗体的控件,通常的作法是给每一种类型的控件的名称前增加统一的前缀。

前缀字符采用三个小写字母的形式表示(一般常用的控件三个字母都可以满足,也有一些控件无法更好地用三个字母缩写,详见下面的表格),主要按照以下几点:

1.控件主体名称采用名词或动名词的形式命名,如:

一个开始处理的按钮:

btnBeginProc

2.控件主体名采用单词首字母大写的形式命名,如:

一个产生应收帐款的按钮可以命名为:

btnMakeAR

3.3.1Winform控件命名规范

控件类型

前缀

例子

Label

lbl

lblStartSync

LabelLink

lbk

Button

btn

TextBox

txt

MainMenu

mnu

CheckBox

chk

RadioButton

rdo

GroupBox

grp

PictureBox

pic

Panel

pan

DataGrid

grd

ListBox

lst

CheckedListBox

chklst

Combo

cbo

ListView

lstv

TreeView

trv

TabControl

tab

DateTimerPicker

dtp

MonthCalendar

cld

HScrollBar

hsb

VScrollBar

vsb

Timer

tmr

Splitter

spl

DomainUpDown

dup

NumericUpDown

nup

TrackBar

trk

ProgressBar

pgr

RichTextBox

rtxt

ImageList

imglst

HelpProvider

hlp

ToolTip

tlp

ContextMenu

mnu

ToolBar

tlb

StatusBar

sta

NotifyIcon

nti

OpenFileDialog

ofd

SaveFileDialog

sfd

FolderBrowserDialog

fbd

FontDialog

fdg

ColorDialog

cdg

PrintDialog

pdg

PrintPreviewDialog

ppd

PrintPreviewControl

ppc

ErrorProvider

erp

PrintDocument

prd

PageSetupDialog

psd

CrystalReportViewer

crv

3.3.2C#数据组件命名规范

数据库对象

前缀

例子

DataSet

ds

dsDept

DataTable

dt

dtDept

DataTableCollection

dtc

dtcDept

DataView

dv

dvDept

DataRow

dr

drDept

DataRowCollection

drc

drcDept

DataColumn

dc

dcField

DataColumnCollection

dcc

dccDept

DataRowView

drv

drvDept

OleDbDataProvider

OleDbDataAdapter

oleadp

OleDbConnection

oleconn

OleDbCommand

olecmd

SqlServerDataProvider

SqlDataAdapter

sqladp

SqlConnection

sqlconn

SqlCommand

sqlcmd

OdbcDataProvider

OdbcDataAdapter

odbcadp

OdbcConnection

odbcconn

OdbcCommand

odbccmd

OracleDataProvider

OracleDataAdapter

oraadp

OracleConnection

oraconn

OracleCommand

oracmd

3.3.3C#菜单命名规范

应用程序频繁使用许多菜单控件,对于这些控件具备一组唯一的命名约定很实用。

除了最前面"mnu"标记以外,菜单控件的前缀应该被扩展:

对每一级嵌套增加一个附加前缀,将最终的菜单的标题放在名称字符串的最后。

下表列出了一些例子。

菜单标题序列

菜单处理器名称

FileOpen

mnuFileOpen

FileSendEmail

mnuFileSendEmail

FileSendFax

mnuFileSendFax

FormatCharacter

mnuFormatCharacter

HelpContents

mnuHelpContents

当使用这种命名约定时,一个特定的菜单组的所有成员一个接一个地列在.net的“属性”窗口中。

而且,菜单控件的名字清楚地表示出它们所属的菜单项。

3.4变/常量命名规范

应用程序中所有定义的变量、属性、参数等统一采用Camel规则命名,即首字符小写,在为变量取名时应尽可能选取最能说明其含义的单词,切记不能使用中文拼音。

例图如下:

3.5方法命名规范

方法名的主体应该使用大小写混合形式,并且应该足够长以描述它的作用。

而且,方法名应该以一个动词起首。

对于频繁使用的或长的项,推荐使用标准缩略语以使名称的长度合理化。

一般来说,超过32个字符的变量名在VGA显示器上读起来就困难了。

当使用缩略语时,要确保它们在整个应用程序中的一致性。

在一个工程中,如果一会儿使用Cnt,一会儿使用Count,将导致不必要的混淆,具体的方法命名实例如下图:

3.6代码注释规范

3.6.1代码注释约定

应用程序中的代码注释起着十分重要的作用,不仅可以使代码看起来整理规范,有助于开发人员后期修改或查看代码,同时也方便其他用户了解具体代码功能。

好的代码注释应该遵循以下几点基本规范:

1.所有的方法和函数都应该以描述这段代码的功能的一段简明注释开始(方法是干什么)。

这种描述不应该包括执行过程细节(它是怎么做的),因为这常常是随时间而变的,而且这种描述会导致不必要的注释维护工作,甚至更糟—成为错误的注释。

代码本身和必要的嵌入注释将描述实现方法。

2.当参数的功能不明显且当过程希望参数在一个特定的范围内时,也应描述传递给过程的参数。

被过程改变的函数返回值和全局变量,特别是通过引用参数的那些,也必须在每个过程的起始处描述它们。

3.6.2相关类文件注释规范

应用程序中所有的类文件头部都应该有关于该类的具体说明,主要内容包括:

1.文件名称(FileName):

此文件的名称

2.功能描述(Description):

此模块的功能描述与大概流程说明

3.创建人(Author):

首次创建该文档的用户名

4.日期(CreateDate):

首次创建该文档的具体时间,如2015-09-25

5.版本(Version):

用于区别不同版本的应用程序

6.修改记录(RevisionHistory):

若档案的所有者改变,则需要有修改人员的名字、修改日期及修改理由。

R1:

修改作者:

修改日期:

修改理由:

R2:

修改作者:

修改日期:

修改理由:

R3:

R10

R100

7.引用(Using)﹕开发的系统中引用其它系统的dll、对象时,要列出其对应的名称和位置,这样确保在升级文件时不遗漏个别dll文件。

U1:

dll名称:

具体位置:

U2:

dll名称:

具体位置:

U100

8.分割符:

*******************************************(收尾都要)

例图如下:

3.6.3方法注释规范

应用程序中具体的方法注释应严格按照以下几点执行:

1.由于同一个方法可能会有多个开发人员进行编辑,为了更好地维护代码文档,我们建议在每个方法的注释中除了写明该方法的具体功能、参数说明、返回值说明之外,应添加方法的创建人员、创建时间以及相关修改记录。

2.所有的方法必须在其定义前增加方法注释。

3.方法注释采用///形式自动产生XML标签格式的注释。

4.方法中有多个参数时,请不要将参数的说明写在同一行,应单独成行,对于有返回值的方法也请写清具体返回的内容。

5.以下表格中列出了一些常用的文档注释标记,仅供参考:

标记

说明

备注

提供了一种将说明中的文本标记为代码的方法

提供了一种将多行指示为代码的方法

可以指定使用方法或其他库成员的示例。

一般情况下,这将涉及到标记的使用。

对可从当前编译环境中获取的异常的引用。

得以引用描述源代码中类型和成员的另一文件中的注释。

用于定义表或定义列表中的标题行。

用于诸如

等标记内,使您得以将结构添加到文本中。

应当用于方法声明的注释中,以描述方法的一个参数。

提供了一种指示词为参数的方法。

得以将成员的访问记入文档。

用于添加有关某个类型的信息,从而补充由

所指定的信息。

应当用于方法声明的注释,以描述返回值。

得以从文本内指定链接。

对可以通过当前编译环境进行调用的成员或字段的引用。

应当用于描述类型或类型成员。

得以描述属性。

例图如下:

3.6.4代码行注释

1.如果处理某一个功能需要很多行代码实现,并且有很多逻辑结构块,类似此种代码应该在代码开始前添加注释,说明此块代码的处理思路及注意事项等。

2.注释从新行增加,与代码开始处左对齐。

3.双斜线与注释之间以空格分开。

例图如下:

3.6.5变量注释

定义变量时应该写清其具体的含义和用途,变量的注释应紧跟在变量之后,双斜线与注释之间以空格分开。

例图如下:

3.7其他规范

在编写代码时,软件开发人员应时时刻刻保持一个良好的编程习惯,这不仅有助个人编程技术的提高,同时也可以帮助自己或他人阅读代码文档,提高工作效率。

以下我们根据日常编程工作中总结了一些编码规范,对于尚未提到或给出的编码规范会不断地完善改进。

3.7.1编程风格

1.为了保持更好的阅读习惯,请不要把多个变量声明写在一行中,即一行只声明一个变量,如:

StringstrTest1,strTest2;

应写成:

StringstrTest1;

StringstrTest2;

2.为了更容易阅读,代码行请不要太长,最好的宽度是屏幕宽度(根据不同的显示分辩率其可见宽度也不同)。

请不要超过您正在使用的屏幕宽度。

(每行代码不要超过80个字符)

3.除非在不完全的switch语句中否则不要使用goto语句。

4.注:

原则上不应使用goto语句,除非在能够大大减轻编码的复杂性,并不影响可读性的前提下才允许使用。

5.在switch语句中总是要有default子句来显示信息。

6.代码缩进,一致的代码缩进风格,有利于代码的结构层次的表达,使代码更容易阅读和传阅。

7.代码缩进请使用“TAB”键实现,讲不要使用空格,为保证在不同的机器上使代码缩进保持一致,特此规定C#的TAB键宽度为4个字符。

8.方法参数多于8个时采用结构体或类方式传递。

9.操作符/运算符左右空一个半角空格。

10.所有块的{}号分别放置一行,并嵌套对齐,不要放在同一行上。

11.对于算法较复杂的方法请使用#region属性块分割并注释。

12.对于一个类中有多个方法时,请将这些方法按照一定的功能分割为几个小的模块,具体的分割规则由开发人员自行设定,如:

13.为了简洁美观起见,每个方法之间应留一行,如:

3.7.2资源释放

应用程序中所有外部资源都必须显式释放,如:

数据库连接对象、IO对象等。

展开阅读全文
相关搜索

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

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

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