资源描述
代码编写规范
一、 排版规范
1. 程序块要采用缩进风格编写,缩进的空格以统一的开发工具为准。函数或过程的开始、结构的定义及循环、判断等语句中的代码都要采用缩进风格。
2. 较长的语句(>100字符)要提成多行书写,长表达式要在低优先级操作符处划分新行,操作符放在新行之首,划分出的新行要警醒适当的缩进,是排版整齐,语句可读。
3. 不允许把多个短语句写在一行中,即一行只写一条语句。
示例: 如下例子为不符合规范
rng.Font.Size = 10; rng.Font.Name = "宋体";
应如下书写
rng.Font.Size = 11;
rng.Font.Name = "宋体";
4. If、for、do、while、case、switch、default等语句自占一行,且If、for、do、while等语句的执行语句部分无论多少都要加括号{}。
示例:如下例子不符合规范
If(Strtxt==NULL)return;
应如下书写
If(Strtxt==NULL)
{
return;
}
5. 程序块的分界符(如C++/C#语言中的‘{’和‘}’)应各自独占一行并且位于同一列,同时与引用它们的语句左对齐。
示例:如下例子不符合规范
For(……){
…… // program code
}
If(……)
{
…… // program code
}
应如下书写
For(……)
{
…… // program code
}
If(……)
{
…… // program code
}
二、 注释规范
1. 模块(类)注释规范
///<summary>
/// 模块编号:<模块编号,可以引用系统设计中的模块编号>
/// 作用:<对此类的描述,可以引用系统设计中的描述>
/// 作者:作者中文名
/// 编写日期:<模块创建日期,格式:YYYY-MM-DD>
///</summary>
假如模块有修改,则每次修改必须添加以下注释:
///<summary>
/// Log编号:<Log编号,从1开始一次增长>
/// 修改描述:<对此修改的描述>
/// 作者:修改者中文名
/// 修改日期:<模块修改日期,格式:YYYY-MM-DD>
///</summary>
2. 类属性注释规范
/// <summary>
/// 属性说明
/// </summary>
3. 方法(函数)注释规范
/// <summary>
/// 说明:<对该方法的说明>
/// </summary>
/// <param name="<参数名称>"><参数说明></param>
/// <returns>
///<对方法返回值的说明,该说明必须明确说明返回的值代表什么含义>
/// </returns>
4. 代码间注释规范
单行注释:
//<单行注释>
多行注释:
/*多行注释1
多行注释2
多行注释3*/
代码中碰到语句块时必须添加注释(if,for,foreach,……),添加的注释必须可以说明此语句块的作用和实现手段(所用算法等等)。
5. 边写代码边注释,修改代码同时修改相应的注释,以保证注释与代码的一致性。不再有用的注释要删除。
6. 注释的内容要清楚、明了,含义准确,防止注释二义性。
7. 对于所有物理含义的变量、常量,假如其命名不是充足自注释的,在声明时都必须加以注释,说明其物理含义。变量、常量的注释应放在其上方相邻位置或右方。
8. 注释与所描述内容进行同样的缩排。
示例:如下例子不符合规范
Void ExampleFun(void)
{
// code one comments
CodeBlock one
// code two comments
CodeBlock
}
应改为如下布局
Void ExampleFun(void)
{
// code one comments
CodeBlock one
// code two comments
CodeBlock
}
9. 避免在同一行代码或表达式中间插入注释
三、 标记符命名规范
1.变量命名规则。变量的命名要清楚、明了,有明确含义,同时使用完整的单词或大家基本可以理解的缩写,避免使人产生误解。
变量命名:
成员变量: m_
局部变量: 以小写字母开头
·类、属性及方法 :以大写字母开头,后续单词首字母大写
参考实例:initBorderColor(局部成员变量)、voteNum(局部变量),程序员可根据实际情况梢做改动,可以使其他程序员看变量名便知其类型和属性等关键标记符意义;
2.控件命名规范。控件命名规则一般为前缀+字段名。
示例:字段Title,在界面中的控件为textbox 命名为txtTitle
下列为各种控件所统一的前缀
标准控件
1 btn Button
2 chk CheckBox
3 ckl CheckedListBox
4 cmb ComboBox
5 dtp DateTimePicker
6 lbl Label
7 llb LinkLabel
8 lst ListBox
9 lvw ListView
10 mtx MaskedTextBox
11 cdr MonthCalendar
12 icn NotifyIcon
13 nud NumeircUpDown
14 pic PictureBox
15 prg ProgressBar
16 rdo RadioButton
17 rtx RichTextBox
18 txt TextBox
19 tip ToolTip
20 tvw TreeView
21 wbs WebBrowser
数据
1 dts DataSet
2 dgv DataGridView
3 bds BindingSource
4 bdn BindingNavigator
5 rpv ReportViewer
按钮命名规则
按钮命名一般为前缀btn+动作名称
几种常用按钮命名
保存 btnSave
重置 btnReset
查询 btnSearch
修改 btnEdit
添加 btnAdd
删除 btnDelete
3. 类(Class)、方法(Method)、命名空间(NameSpace)命名规范
说明:
◆ 名字应当可以标记事物的特性。
◆ 名字尽量不使用缩写,除非它是众所周知的。
◆ 名字可以有两个或三个单词组成,但通常不应多于三个。
◆ 在名字中,所有单词第一个字母大写。如IsSuperUser。
◆ 包含ID的,ID所有大写。如CustomerID。
示例:
public class FileStream
public class Button
4. 接口(Interface)命名规范.和类命名规范相同,唯一区别是 接口在名字前加上“I”前缀。
示例:
interface IDBCommand;
interface IButton;
5.命名中若使用特殊约定或缩写,则要有注释说明。
6. 对于变量命名,严禁使用单个字符(如i,j,k……),建议除了要有具体含义外,还能表达其变量类型、数据类型等,但i,j,k作局部变量是允许的。
说明:变量,特别是局部变量,假如用单个字符表达,很容易敲错(如i写成j),而编译时又检查不出来,有也许为了这个小小的错误而花费大量的差错时间。
示例:string strStkcd 。
7. 在同一软件产品中,应规划好接口部分标记符(变量、结构、函数及常量)的命名,防止编译、链接时产生的冲突。
说明:对接口部分的标记符应当有严格限制,防止冲突。如可规定接口部分的变量与常量之前加上“模块”标记等。
8. 防止局部变量和公共变量同名
9. 明确公共变量的含义、作用、取值范围及公共变量间的关系,并去掉没必要的公共变量。
10. 鉴于大多数名称都是通过连接若干单词构造的,请使用大小写混合的格式以简化它们的阅读。每个单词的第一个字母都是大写.
四、 异常解决
1. 重要功能实现要有全面的异常解决
2.针对异常捕获过程中的Exception变量命名,在没有冲突的情况下,统一命名为e;
假如有冲突的情况下,可以反复e,比如:ee。
示例:
Try
{
//your code
try
{
//code
}
catch(Exception ee)
{
//your code
}
}
catch(Exception e)
{
//your code
}
展开阅读全文