c#代码编写规范说明书(2)

2019-01-18 18:56

} catch(Exception exp) { //your code } } catch(Exception expSql) { //your code } 补充:如果捕获异常不需要作任何处理,则不需要定义Exception实例。 例:

try { //your code } catch( Exception exp) { } ? 鉴于大多数名称都是通过连接若干单词构造的,请使用大小写混合的格式以简化它们的阅读。每个单词的第一个字母都是大写.

? 即使对于可能仅出现在几个代码行中的生存期很短的变量,仍然使用有意义的名称。仅对于短循环索引使用单字母变量名,如 i 或 j。

? 在变量名中使用互补对,如 min/max、begin/end 和 open/close。

? 不要使用原义数字或原义字符串,如 For (i = 1;i <= 7;i++)。而是使用命名常数,如 For (i = 1;i <= NUM_DAYS_IN_WEEK;i++) 以便于维护和理解。 b) 控件命名

控件命名 = 控件名称前二到三个字母 + 名称,如Labl控件(labUserName) 5.2 常量命名

常量名也应当有一定的意义,格式为 NOUN 或 NOUN_VERB。常量名均为大写,字之间用下划线分隔。 例:

private const bool WEB_ENABLEPAGECACHE_DEFAULT = true; private const int WEB_PAGECACHEEXPIRESINSECONDS_DEFAULT = 3600; private const bool WEB_ENABLESSL_DEFAULT = false; 注:

变量名和常量名最多可以包含 255 个字符,但是,超过 25 到 30 个字符的名称比较笨拙。此外,

要想取一个有实际意义的名称,清楚地表达变量或常量的用途,25 或 30 个字符应当足够了。 5.3 类(Class)命名

a) 名字应该能够标识事物的特性。

b) 名字尽量不使用缩写,除非它是众所周知的。

c) 名字可以有两个或三个单词组成,但通常不应多于三个。

d) 在名字中,所有单词第一个字母大写。例如 IsSuperUser,包含ID的,ID全部大写,如CustomerID。

e) 使用名词或名词短语命名类。 f) 少用缩写。

g) 不要使用下划线字符 (_)。 例:

public class FileStream public class Button public class String 5.4 接口(Interface)命名

和类命名规范相同,唯一区别是 接口在名字前加上“I”前缀 例:

interface IDBCommand; interface IButton; 5.5 方法(Method)命名 和类命名规范相同。

5.6 命名空间(NameSpace)命名 和类命名规范相同。

6 编码规则 6.1 错误检查规则

a) 编程中要考虑函数的各种执行情况,尽可能处理所有流程情况。 b) 检查所有的系统调用的错误信息,除非要忽略错误。

c) 将函数分两类:一类为与屏幕的显示无关, 另一类与屏幕的显示有关。对于与屏幕显示无关的函数,函数通过返回值来报告错误。对于与屏幕显示有关的函数,函数要负责向用户发出警告,并进行错误处理。

d) 错误处理代码一般放在函数末尾。

e) 对于通用的错误处理,可建立通用的错误处理函数,处理常见的通用的错误。 6.2 大括号规则

将大括号放置在关键词下方的同列处,例如:

if ($condition) while ($condition) { { ... ... } } 6.3 缩进规则

使用一个“Tab”为每层次缩进。例如:

function func() { if (something bad) { if (another thing bad) { while (more input) { } } } } 6.4 小括号规则

a) 不要把小括号和关键词(if 、while等)紧贴在一起,要用空格隔开它们。 b) 不要把小括号和函数名紧贴在一起。

c) 除非必要,不要在Return返回语句中使用小括号。因为关键字不是函数,如果小括号紧贴着函数名和关键字,二者很容易被看成是一体的。 6.5 If Then Else规则

如果你有用到else if 语句的话,通常最好有一个else块以用于处理未处理到的其他情况。可以的话放一个记录信息注释在else处,即使在else没有任何的动作。其格式为:

if (条件1) // 注释 { } else if (条件2) // 注释 { } else // 注释 { } 注:if 和循环的嵌套最多允许4层,所有的if语句后必须有一对大括号({})。哪怕if下只有一行代码

6.6 比较规则

总是将恒量放在等号/不等号的左边。一个原因是假如你在等式中漏了一个等号,语法检查器会为你报错。第二个原因是你能立刻找到数值而不是在你的表达式的末端找到它。例如:

if ( 6 == $errorNum ) ... 6.7 Case规则

default case总应该存在,如果不允许到达,则应该保证:若到达了就会触发一个错误。Case的选择条件最好使用int或string类型。 6.8 对齐规则

变量的申明和初始化都应对齐。例如:

int m_iCount; int i,j; float m_fIncome,m_fPay; m_iCount = 0; i = 1; m_fIncome = 0.3; 6.9 单语句规则

除非这些语句有很密切的联系,否则每行只写一个语句。 6.10 单一功能规则

原则上,一个程序单元(函数、例程、方法)只完成一项功能。 6.11 简单功能规则 原则上,一个程序单元的代码应该限制在一页内(25~30行)。 6.12 明确条件规则

不要采用缺省值测试非零值。例如:使用“if ( 0 != f( ) )”而不用“if ( f( ) )”。 6.13 选用FALSE规则

大部分函数在错误时返回FALSE、0或NO之类的值,但在正确时返回值就不定了(不能用一个固定的TRUE、1或YES来代表),因此检测一个布尔值时应该用 FALSE、0、NO之类的不等式来代替。例如:使用“if ( FALSE != f( ) )” 而不用“if (TRUE == f( ) )”。 6.14 独立赋值规则

嵌入式赋值不利于理解程序,同时可能回造成意想不到的副作用,应尽量编写独立的赋值语句。例如:使用“a = b + c ; e = a + d;”而不用“e = ( a = b + c ) + d ”。 6.15 定义常量规则

对于代码中引用的常量(尤其是数字),应该define成一个大写的名字,在代码中引用名字而不直接引用值。 6.16 模块化规则

某一功能,如果重复实现一遍以上,即应考虑模块化,将它写成通用函数。并向小组成员发布。同时要尽可能利用其它人的现成模块。 6.17 交流规则

共享别人的工作成果,向别人提供自己的工作成果。

在具体任务开发中,如果有其它的编码规则,则在相应的软件开发计划中予 以明确定义。

7 编程准则 7.1 变量使用

a) 不允许随意定义全局变量。

b) 一个变量只能有一个用途;变量的用途必须和变量的名称保持一致。

c) 所有变量都必须在类和函数最前面定义,并分类排列。 7.2 数据库操作

a) 查找数据库表或视图时,只能取出确实需要的那些字段。 b) 使用无关联子查询,而不要使用关联子查询。 c) 清楚明白地使用列名,而不能使用列的序号。 d) 用事务保证数据的完整性。 7.3 对象使用

a) 尽可能晚地创建对象,并且尽可能早地释放它。 7.4 模块设计原则

a) 不允许随意定义公用的函数和类。

b) 函数功能单一,不允许一个函数实现两个及两个以上的功能。

c) 不能在函数内部使用全局变量,如要使用全局变量,应转化为局部变量。

d) 函数与函数之间只允许存在包含关系,而不允许存在交叉关系。即两者之间只存在单方向的调用与被调用,不存在双向的调用与被调用。 7.5 结构化要求

a) 禁止出现两条等价的支路。 例如:

if (a == 2) else if (a== 3) // else if (a == 2) // else // b) 避免使用GOTO语句

c) 用 IF 语句来强调只执行两组语句中的一组。禁止 ELSE GOTO 和 ELSE RETURN。 d) 用 CASE 实现多路分支 e) 避免从循环引出多个出口。 f) 函数只有一个出口。 g) 不使用条件赋值语句。 h) 避免不必要的分支。

i) 不要轻易用条件分支去替换逻辑表达式 7.6 函数返回值原则 1) 函数返回值

避免使用结构体等复杂类型

使用bool类型:该函数只需要获得成功或者失败的返回信息时候 使用int 类型:错误代码用负数表示,成功返回0

8 代码包规范

本项目中,每个任务在完成一个稳定的版本后,都应打包并且归档。 8.1 代码包的版本号

项目中,代码包的版本号由圆点隔开的两个数字组成,第一个数字表示发行号,第二个数字表示该版


c#代码编写规范说明书(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:中小学和幼儿园教师资格考试问答

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: