文档编写:fengart
( 主要结合自身编程习惯和参考东软集团有限公司的C#编程规范编写)
一、概述
1.1 规范制定原则
1 方便代码的交流和维护。
2 不影响编码的效率,不与大众习惯冲突。
3 使代码更美观、阅读更方便。
4 使代码的逻辑更清晰、更易于理解。
2.1 术语定义
Pascal 大小写
将标识符的首字母和后面连接的每个单词的首字母都大写。可以对三字符或更多字符的标识符使用Pascal 大小写。例如:
BackColor
Camel 大小写
标识符的首字母小写,而每个后面连接的单词的首字母都大写。例如:
backColor
二、注释规范
2.1文件注释
1 在每个文件头必须包含以下注释说明
/*----------------------------------------------------------------
// Copyright (C) 2007 团队名
// 版权所有。
// 开发者:
// 文件名:
// 文件功能描述:
//----------------------------------------------------------------*/
2.2. 文档型注释
该类注释采用.Net已定义好的Xml标签来标记如:
///<summary>
///方法说明
///</summary>
///<para name="Int1">参数说明</para>
public static void MyMethod(int Int1)
{
}
下表汇总了大写规则,并提供了不同类型的标识符的示例。
标识符 | 大小写 | 示例 |
类 | Pascal | AppDomain |
枚举类型 | Pascal | ErrorLevel |
枚举值 | Pascal | FatalError |
事件 | Pascal | ValueChange |
异常类 | Pascal | WebException 总是以 Exception 后缀结尾。 |
只读的静态字段 | Pascal | RedValue |
接口 | Pascal | IDisposable 注意 总是以 I 前缀开始。 |
方法 | Pascal | ToString |
命名空间 | Pascal | System.Drawing |
属性 | Pascal | BackColor |
公共实例字段 | Pascal | RedValue |
受保护的实例字段 | Camel | redValue |
私有的实例字段 | Camel | redValue |
参数 | Camel | typeName |
方法内的变量 | Camel | backColor |
三、代码规范
3.1每行声明数
一行只建议作一个声明,并按字母顺序排列。如
int level; //推荐
int size; //推荐
int x, y; //不推荐
3.2 初始化
建议在变量声明时就对其做初始化。
3.3 类和接口的声明
1 在方法名与其后的左括号间没有任何空格。
2 左花括号 “{” 出现在声明的下行并与之对齐,单独成行。
3 方法间用一个空行隔开。
3.4 字段的声明
不要使用是 public 或 protected 的实例字段。如果避免将字段直接公开给开发人员,可以更轻松地对类进行版本控制,原因是在维护二进制兼容性时字段不能被更改为属性。考虑为字段提供 get 和set 属性访问器,而不是使它们成为公共的。 get 和 set 属性访问器中可执行代码的存在使得可以进行后续改进,如在使用属性或者得到属性更改通知时根据需要创建对象。下面的代码示例阐释带有get 和 set 属性访问器的私有实例字段的正确使用。 示例:
public class Control: Component
{
private int handle;
public int Handle
{
get
{
return handle;
}
}
}
四、 控件命名规则
4.1 命名方法
控件名简写+下划线+英文描述,英文描述首字母大写
4.2 主要控件名简写对照表
控件名 简写 控件名 简写
Label lbl TextBox txt
Button btn LinkButton lnkbtn
ImageButton imgbtn DropDownList ddl
ListBox lst DataGrid dg
DataList dl CheckBox chk
CheckBoxList chkls RadioButton rdo
RadioButtonList rdolt Image img
Panel pnl Calender cld
AdRotator ar Table tbl
RequiredFieldValidator rfv CompareValidator cv
RangeValidator rv RegularExpressionValidator rev
ValidatorSummary vs CrystalReportViewer rptvew