#编码规范
##术语定义
1. Pascal-标识符每个单词的首字母都大写。UserName
2. Camel-首字母小写。userId
##文件命名组织
1. 文件命名:Pascal命名法,类名.cs
2. 文件注释: 版权声明,文件功能简述,创建标识,修改标识。在修改处做详细注释
##代码外观
1. 列宽: 110个字符
2. 换行:在逗号后,操作符前换行
##缩进
1. Tab替换成4个空格。
##空行
1. 两个空行:接口与类之间、枚举与类之间、类与类之间
2. 一个空行:方法、属性、不同的逻辑块、返回语句之前、注释前、方法中变量声明与语句之间。
##空格
1. 关键字与左括号之间:for (int ...)
2. 多个参数用逗号隔开,每个逗号后加一个空格:Add(a, b, c)
3. 除了"."之外,二元操作符用空格与操作数隔开,一元操作符、++/--不需要。a += c + b; n++;
4. 语句中的表达式:for (expr1; expr2; expr3)
##括号
1. (不要紧靠关键字,中间用一个空格。if (expr)
2. (与方法名之间不要空格。Add(....)
3. 没有必要,不要在返回语句使用()
##花括号{}
1. {放在关键字或方法名下一行并对齐。通常单独一行。
if (n > 10)
{
}
2. if、while、do后面一定要使用{},无论{}中为空或只有一条语句。
if (n > 10)
{
Work(n);
}
##声明
1. 每行只做一个声明
2. 初始化:建议在声明时就对其进行初始化。string str = "";
3. 位置:建议在代码块开始处,声明变量
4. 字段的声明:不要使用public,protected,字段名用下划线开头,首字母小写。int _userId = 1;
##命名规范
###命名概述
1. 避免使用会导致多义性的名称:AnalyzeThis、xxK8
2. 只要合适,末尾或开头加计算限定符:Avg、Sum、Min、Max、Index
3. 在变量中使用互补对,min/max、begin/end、open/close
4. 布尔变量包含Is表示Yes/No,True/False值。fileIsFound
5. 状态变量,不使用诸如Flag的术语,使用更具描述性的名称:documentFormatType
6. 生存期很短的临时变量,尽量使用有意义的名称。考虑命名常数的使用:NUM_DAYS_IN_WEEK
###缩写
1. 尽量不使用缩写,除非是众所周知的。如UI、OLAP
###命名空间
1. 公司名称.项目名称.功能或设计
2. 命名空间和类不使用相同的名称
###类名、接口名
1. Pascal大小写
2. 使用名词、名词短语
3. 不使用"_"、避免缩写
4. 接口以“I"做前缀
###特性类
1. 总是将后缀"Attribute"加到自定义特性类名。ObsoleteAttribute
###枚举
1. Pascal大小写、不用缩写、不加Enum后缀
2. 使用单数名称,但是作为位域的Enum类型使用复数名称
3. 总是FlagsAttribute添加到位域Enum类型
###参数
1. 名称具有描述性
2. Camel大小写
###方法
1. 使用动词或动词短语。RemoveAll,GetCharArray,Invoke
2. Pascal大小写
###属性
1. 使用名词或名称短语
2. Pascal大小写
###事件
1. 事件处理程序名称使用EventHandler后缀
2. sender,e为参数
3. 用EventArgs后缀命名事件参数类
4. 考虑动词命名
5. 使用ing形式表示事件前的概念的事件,用过去式表示事件后。Closing事件/Closed事件
6. 对于可以在派生类中重写的事件,应提供一个受保护的方法OnClosing,只有e参数,发送方总是类型的实例。
###常量
1. 所有单词大写,多个单词用"_"隔开。PAGE_TITLE
###字段
1. private/protected使用Camel大小写
2. public使用Pascal大小写
3. 用"_"做前缀。private string _userName;
###静态字段
1. 使用名词、名称短语,Pascal大小写,s_或g_做前缀
2. 建议尽可能使用静态属性,不用公共静态字段
##其它
###表达式
1. 避免在表达式中用赋值语句
2. 避免对浮点类型做等于或不等于判断
###类型转换
1. 避免强制类型转换
2. 如不得不做类型转换,尽量用显示方式、
###接口可能抛出异常
1. 接口会抛出异常的情况下,注释要做好
2. 接口一般不处理异常,只抛出异常给用户处理
###空的数据集合
1. 如要返回空的数据的集合,不要返回null, 返回空的、个数为0的集合
来源:oschina
链接:https://my.oschina.net/u/1587730/blog/538295