全国计算机等级Visual Basic编程规范

出处:www.examlink.com 作者:小罗 日期:2007年01月23日 14时12分

4.2 使用枚举值
你不必记住参数的数值,错误地设定值的可能性也大大减少了。虽然你仍可为参数设定数值,而不是设定枚举成员的名字,但你决不应该这样去做。
1)        枚举值的所有成员都是长整型数,你不得使用其他数据类型。
2)        使用常量和枚举值的目的:
减少数字换位和键入错误带来的代码错误;
将来可以更容易更改各个值;
使代码更容易阅读。

4.3 编程原则
常量不同于变量的另一个标识特征是不使用数据类型前缀。
有些外部数据库仍然使用大写字母常量。例如,如果用 API浏览器查找和拷贝与API相关的常量,你常可看到它们是使用大写字母的常量。在这种情况下,请将这些常量保持原状,以便达成应用程序之间的一致性。

1)        将应用程序前缀或特定的前缀用于枚举成员
i.        不必用前缀来表示枚举成员的类型,因为所有成员总是属于长整型数。但应该使用专门的前缀来表示它的值来自应用程序或组件。
ii.        应该用一个指示符作为枚举成员的前缀,因为当vb遇到一个枚举成员名时,如果其他被引用的类型库中包含相同的名字,它就会搞混。
2)        若要了解键入的系统常量是否正确,方法之一是全部用小写字母键入该常量。如果该常量有效,vb就会将它转换成正确的大小写字母。如果该常量仍然保持全部为小写字母,就表示键入的名字不正确,必须进行纠正。
3)        当参数接受有限数量的值时,请使用枚举
4)        使用Select Case结构时,始终要加上一个Else子句,以便处理传递给过程的有效值。
5. 变量
5.1 定义有焦点的变量
用于多个目的的变量称为无焦点(多焦点)的变量。无焦点变量所代表的意义与程序的执行流程有关,当程序处于不同位置时,它所表示的意义是不固定的,这样就给程序的可读性和可维护性带来了麻烦。
比如:定义一个名为rs的RecordSet变量,先用这个变量取得了医院员工数据,之后又用同一个变量名取得了住院病人数据,那么单独抽取出一句使用了变量rs的语句,如果只凭这一句、不从头读起的话,很知道这句话究竟使用的是哪个表的数据。这给程序的维护带来了不必要的麻烦。
5.2 只对常用变量名和长变量名进行缩写
如果需要对变量名进行缩写时,一定要注意整个代码中缩写规则的一致性。例如,如果在代码的某些区域中使用Cnt,而在另一些区域中又使用Count,就会给代码增加不必要的复杂性。
变量名中尽量不要出现缩写。
5.3 使用统一的量词
通过在结尾处放置一个量词,就可创建更加统一的变量,它们更容易理解,也更容易搜索。例如,请使用strCustomerFirst和strCustomerLast,而不要使用strFirstCustomer和strLastCustomer。
量词列表:
量词后缀        说明
First        一组变量中的第一个
Last        一组变量中的最后一个
Next        一组变量中的下一个变量
Prev        一组变量中的上一个
Cur        一组变量中的当前变量
5.4 使用肯定形式的布尔变量
给布尔变量命名时,始终都要使用变量的肯定形式,以减少其它开发人员在理解布尔变量所代表的意义时的难度。
5.5 为每个变量选择最佳的数据类型
这样即能减少对内存的需求量,加快代码的执行速度,又会降低出错的可能性。用于变量的数据类型可能会影响该变量进行计算所产生的结果。在这种情况下,vb不会产生运行期错误,它只是迫使该值符合数据类型的要求。这类问题极难查找。
例如:对可能会出现浮点数的变量,定义为整形或长整形会导致VB在运算时将该变量的值自动取整,这种VB自动进行、隐式的的操作会增大程序排错时的难度。
5.6 只有在绝对必要时才使用Variant数据类型
Variant还存在其他缺陷。它们占用的内存比VB的任何其他数据类型都要多,而且对Variant中的数据进行操作时的速度几乎总是比对其他数据类型进行操作的速度要慢,另外变体类型还可能导致VB在程序运行过程中对数据类型进行自动转换。
只有在确实不能预料变量的类型时才能使用Variant。
注意:当你使用单个As﹤type﹥子句在同一个代码行上说明多个变量时,只有Dim语句中的最后一个变量被赋予特定数据类型。所有其他变量均被赋予Variant数据类型。
5.7 尽量缩小变量的作用域
如果变量的作用域大于它应有的范围,变量可继续存在,并且在不再需要该变量后的很长时间内仍然占用资源。
它们的主要问题是,任何模块中的任何过程都能对它们进行修改,并且很难跟踪究竟是何处进行修改的。
占用资源是作用域涉及的一个重要问题。如果创建全局的Recordset(记录集)变量,问题会复杂。对于Recordset
对变量来说,尽量缩小作用域将会对应用程序的可靠性产生巨大的影响。
5.8 使用“&”字符对字符串进行并置操作
“&”字符能清楚的传达函数的意图,消除阅读者可能存在的疑点,使阅读者清楚地理解目前的操作是加法、还是字符串连接,并且不会因为类型的强制转换而产生不正确的结果。
6. 代码的格式化
6.1 对代码进行格式化时,要达到的目的包括:
1)        通过代码分割成功能块和便于理解的代码段,使代码更容易阅读和理解;
2)        使用空行和注释行,将程序中逻辑上不相关的代码块分开。比如:变量声明部分和代码语句间的分隔;较长的过程中,完成不同功能的代码块间的分隔。要避免出现逻辑上混乱的分隔,如:某一逻辑功能代码块中间用空行进行了分隔,但是在相邻功能代码块之间却没有分隔,这样会给程序阅读者造成错觉。
3)        减少为理解代码结构而需要做的工作;
4)        使代码的阅读者不必进行假设;
5)        使代码结构尽可能做到格式清楚明了。
6.2 编程原则:
1)        要将多个语句放在同一行上
不论是变量声明,还是语句都不要在一行上书写多个。
2)        用行接续符
对较长语句,如API声明等,在代码窗体可视范围内给予换行,不要使别人必须通过滚动窗口才能查看到完整的代码。注意,当处理长字符串时,要使用
"字符串1" & _
"字符串2"
的格式。
3)        缩进后续行
当你将变量设置为某个值时,所有后续行的缩进位置应与第一行的变量值相同;
当你调用一个过程时,后续行缩进到第一个参数的开始处;
当你将变量或属性设置为等于表达式的计算结果时,请从后面分割该语句,以确保该表达式尽可能放在同一行上。
4)        在If语句后缩进;
在Else语句后缩进
在Select Case语句后缩进
在Case语句后缩进
在Do语句后缩进
已经用行接续符分割的语句的各个行要缩进
在With语句后缩进。
对从属于行标注的代码进行缩进。
5)        在执行统一任务的各个语句组之间插入一个空行。好的代码应由按逻辑顺序排列的进程或相关语句组构成。
7. 代码的注释
7.1 使用代码注释的目的:
1)        文字说明代码的作用(即为什么要用编写该代码,而不是如何编写);
2)        确指出该代码的编写思路和逻辑方法;
3)        人们注意到代码中的重要转折点;
4)使代码的阅读者不必在他们的头脑中仿真运行代码的执行过程.
7.2 编程原则:
1. 用文字说明代码的作用:
简单的重复代码做写什么,这样的注释几乎不能给注释增加什么信息.如果你使用好的命名方法来创建直观明了的代码那么这些类型的注释绝对增加不了什么信息.
2. 如果你想违背好的编程原则,请说明为什么
有的时候你可能需要违背好的编程原则,或者使用了某些不正规的方法,.遇到这种情况时,请用内部注释来说明你在做什么和为什么要这样做。
技巧性特别高的代码段,一定要加详细的注释,不要让其他开发人员花很长时间来研究一个高技巧但不易理解的程序段。
3. 用注释来说明何时可能出错和为什么出错
4. 在编写代码前进行注释
给代码加注释的方法之一是在编写一个过程前首先写上注释.如果你愿意,可以编写完整句子的注释或伪代码.一旦你用注释对代码进行了概述,就可以在注释之间编写代码.
5. 在要注释的代码前书写注释
注释一定出现在要注释的程序段前,不要在某段程序后书写对这段程序的注释,先看到注释对程序的理解会有一定帮助。
如果有可能,请在注释行与上面代码间加一空行。
6. 纯色字符注释行只用于主要注释
注释中要分隔时,请使用一行空注释行来完成,不要使用纯色字符,以保持版面的整洁、清晰。
7. 避免形成注释框
用星号围成的注释框,右边的星号看起来很好,但它们给注释增加了任何信息吗?实际上这会给编写或编辑注释的人增加许多工作。
8. 使用撇号来指明注释
不要使用Rem语句来注释。
9. 增强注释的可读性

最后更新时间:2008-05-28 11:40:36
文章评论
共有 0 位网友发表了评论
用户名: 新注册) 密码: 匿名评论 [查看所有评论]

评论内容:(不能超过250字,需审核后才会公布,请自觉遵守互联网相关政策法规。
您可以用以下几种方式找到此文章

考试全流程