XXXX企业有限公司-软件系统研发系列
PAGE2
C#代码规范检查表
项目名称
项目编号
检查人
检查日期
被检查人
检查内容
检查依据
检查类别
检查规模
检查耗时
规范编号
检查类别
检查项
级别
缺陷数量
缺陷描述
1
所有命名空间、类、接口、方法、属性、变量、参数均使用英文单词或易理解的缩写进行命名。
强制
2
对命名空间、类、接口、方法以及变量进行命名时,尽量使用贴近问题域的表意丰富的名称。
强制
3
修改源代码时,应尽量保持与所修改系统的编码风格保持一致。
强制
4
所有命名空间名称必须使用ESSE前缀。
强制
5
应该使用VS2005默认格式规范。
强制
6
一个C#源文件.cs应该只包含一个类,内嵌类和匿名类除外。把所有枚举变量集中定义到同一个源文件中。
强制
7
命名空间的引用应该按照相关性进行分组。
强制
8
类和接口中元素的布局顺序。
强制
9
变量声明,采用camel表示法,不要在一行声明多个变量。
强制
10
方法修饰关键字定义顺序。
强制
11
保证明确的类型转换,不要默认进行隐式类型转换。
强制
12
数组指示符紧跟类型变量。
强制
13
一个变量要代表独立的意思,不要在其生命周期赋予它不同的概念。
强制
14
仅仅循环控制变量才能出现在for()循环中。
强制
15
循环变量应靠近循环体初始化。
强制
16
避免长的布尔表达式,应该换成多个更容易理解的表达式。
强制
17
代码缩进,应该使用4个空格为一个单位进行缩进。
强制
18
条件语句的主要形式,即使单条语句,也要使用括号括起来。
强制
19
空循环体也要使用完整的{}块。
强制
20
switch语句的使用格式。
强制
21
try-catch使用格式。
强制
22
空格的使用。
强制
23
空格的使用。
强制
24
逻辑上紧密相关的代码块应该用一个空行分开。
强制
25
为了保证可读性,变量名应该左对齐。
推荐
26
提高代码可读性的排版。
推荐
27
三元条件运算符。
强制
28
将所有成员变量命名为private或protected,使用Property进行外部访问。如果成员函数仅为自己和派生类使用,使用protected,如果仅仅为类本身访问,使用private。
强制
29
命名空间应该使用Pascal命名方式,不要出现下划线等符号,名词用有意义的缩写或者英文单词。
强制
30
所有类命名使用Pascal表示方式,使用名词组合。
强制
31
接口命名使用字母“I”加上Pascal形式的表示方式。
强制
32
使用名词组合或形容词去命名一个接口,接口声明了一个对象能提供的服务,也描述了一个对象的能力。一般以“able”和“ible”作为后缀,代表了一种能力。
强制
33
变量名和参数名使用Camel表示方式。
强制
34
对于常量名,使用大写字母,并使用下划线做间隔。
强制
35
方法名应该使用动词开头,使用Pascal表示方式,一般由动词+名词组成。
强制
36
缩写字母也应该保持首字母大写。
强制
37
变量的名字应该尽可能的和类型名称一致。
推荐
38
根据变量的作用范围,作用范围大的应使用长名称,作用范围大,表明变量的生命周期比较长,为了有助于理解,应尽量用长名称以表达变量的真实意图。反之,对于作用范围小,可以使用一些简化的名称,比如i、j、k等,提高编程效率。
强制
39
枚举类型名称使用Pascal方式命名。
强制
40
控件命名规范。
强制
41
使用is前缀表示一个布尔变量和方法。
强制
42
在查询方法中应使用Find作为前缀。
推荐
43
使用Initialize做为对象初始化的方法前缀,也可以简写为Init。
强制
44
对于对象集合,变量名称应使用复数。
强制
45
对于抽象类,应该使用Abstract前缀。对于非抽象基类,可使用Base前缀。
强制
46
对于表示编号的变量,应加No后缀。
强制
47
常在一起使用的对称词汇,这些词汇一起使用,方法的表达意图自然可以互相推测和演绎。
强制
48
避免使用否定布尔变量。
强制
49
异常类应该使用Exception做为后缀。
强制
50
缺省接口实现应该使用Default前缀。
强制
51
对于单例类(Singleton),应该使用GetIns