VB程序编程风格谈 赵玉勇 2001年 38期 编程的过程中最容易忽略的是程序的“风格”。一个好的程序,不但要有简明精确的算法、严密的逻辑思维和正确的思想体现,程序的风格也同样重要。好的程序风格,可以让我们的程序写得更加平易近人,更加生动,对我们的编程是大有益处的,对我们的程序学习也能起到事半功倍的作用。或者说,编程过程中我们应该遵守一些不成文的标准,这对于我们与他人的交流和自己的再学习都是有益无害的。   编程的过程中,我们应遵守一些成文的或不成文的标准。虽然这些标准对于程序在计算机上的运行意义不大,但对于我们的学习交流却意义深远。也就是说,这些准则没有对程序的逻辑结构做出硬性规定,但对程序的外观却提出了规范化的要求。   使用统一编码约定集的主要原因,是使应用程序的结构和编码风格标准化,以便于阅读和理解。好的编码可使源代码的可读性强且意义清楚,与其他语言约定相一致,并且尽可能直观。我们自己一眼能看出个大概,在别人眼中也不至于成为千古奇书。   VB编程过程中,主要有如下约定。   #1 一、对象命名约定   应该使用一致的前缀来命名对象,使人们容易识别对象的类型。例如我们常用控件CommandButton(命令按钮)可用cmd做为其前缀。与之似,Form以frm,Image以img,Label以lbl,List Box以lst,Picture Box以pic,Timer以tmr做为前缀是很方便区分的。在我们编程的过程中,我们看到下面的名称cmdExit我们就知道这一定是一个命令按钮了。如果是第三方提供的控件,我们的说明最好要清晰地标出制造商的名称,以区别于我们的常用控件。   #1 二、常量和变量命名约定   除了控件以外,常量和变量也是我们编程过程中经常遇到的,我们也是通过名字和它们打交道的。   #21.给变量加范围前缀   变量按其作用范围可分做三类,过程级,模块级和全局,所以我们在编程的过程中应将三者加以区别。   我们在使用变量时,为了更好地体现代码重用和可维护原则,其定义范围应尽量缩小,这样将使我们的应用程序更加容易理解和易于控制。   在VB应用程序中,只有当没有其他方便途径在窗体间共享数据时才使用全局变量。当使用全局变量时,在一个单一模块中声明它们,并按功能分组,给模块取一个有意义的名字。较好的编码习惯是尽可能地用模块化的代码。除了全局变量,过程和函数应该仅对传递给它们的的对象操作。在过程中使用的全局变量应该在过程起始处的声明部分标识出来。   变量的作用范围前缀如下:全局g(global),模块级m(model),本地过程不需要使用。例如:gintFlag表示全局整型变量,mstrPassword可表示模块级字符型变量。   #22.声明所有变量原则   声明所有变量将会节省编程时间,键入错误将大大减少,我们可在程序开始写上如下语句:   Option Explicit   该语句要求在程序中声明所有变量。   #23.变量数据类型声明   可通过下面的前缀来作为变量的数据类标志。   Boolean bln   Byte byt   Double dbl   Integer int   String str   #24.常量   常量的命名,可遵循与常量命名大体相同的原则。   #25.对变量和过程名作出描述   变量或过程名的主体应该使用大小写混合的形式,并且应该有足够长度以描述它的作用。而且,函数名应以一个动词开头,如JudgeDialog。   #1 三、结构化编码约定   除了上述的约定外,结构化的程序风格对于我们实际编程也很有意义,可极大地改善代码的可读性。结构化编码约定主要有代码注释和一致性缩进。   #21.代码注释约定   所有的过程和函数都应该以描述这段过程的功能的一段简明的注释开始,说明该程序是干什么的,至于是如何做的,也就是编程的细节,最好不要包括。因为日后我们可能要修改程序,这样做会带来不必要的注释维护工作,如果不修改,就将提供误导信息,可能成为错误的注释,因为代码本身和后面程序中的注释将起到相应的说明作用。   过程中的注释块应该包括如下标题:   小节 描述内容   目的 该过程完成什么   假设 列出每个外部变量、控件、打开文件或其他不明显元素   效果 列出每个被影响的外部变量、控件或文件及其作用(只有当它不明显时)   输入 每一个可能不明显的参数   返回 函数返回值的说明   #22.格式化代码   下面是VB中的计算器示例的一部分,从中我们不难看出格式化代码的约定。   (1)标准的,基于制表位的嵌套应该包括一个嵌注释,用来描述该变量的使用。   (2)变量、控件及过程的命名应该足够清楚,使得只有复杂的执行细节才需要嵌入注释。   (3).bas 模块包含工程的VB一般常量声明,在其起始处,应包括程序的综述,列举主要数据对象,过程、算法、对话、数据库及系统需求。   Option Explicit   Dim Op1,Op2 '预先输入操作数。   Dim DecimalFlag As Integer '小数点存在吗?   Dim NumOps As Integer '操作数个数。   Dim LastInput '指示上一次按键事件的类型。   Dim OpFlag '指示未完成的操作。   Dim TempReadout   '小数点(.)按钮的 Click 事件过程   '如果上一次按键为运算符,初始化 readout 为 “0.”;   '否则显示时追加一个小数点。   Private Sub Decimal_Click()   If LastInput = “NEG” Then   Readout = Format(0,“-0.”)   ElseIf LastInput <> “NUMS” Then   Readout = Format(0,“0.”)   End If   DecimalFlag = True   LastInput = “NUMS”   End Sub   写程序和做人一样,外表也是非常重要的,是我们交流中不可缺少的东西。以上经验对其它编程语言同样适用,希望能对初学者的你有所帮助。