VB程序编程风格谈

Author: 赵玉勇 Date: 2001年 38期

?牐牨喑痰墓讨凶钊菀缀雎缘氖浅绦虻摹胺绺瘛薄R桓龊玫某绦颍坏屑蛎骶返乃惴ā⒀厦艿穆呒嘉驼返乃枷胩逑郑绦虻姆绺褚餐匾:玫某绦蚍绺瘢梢匀梦颐堑某绦蛐吹酶悠揭捉耍由晕颐堑谋喑淌谴笥幸娲Φ模晕颐堑某绦蜓?习也能起到事半功倍的作用。或者说,编程过程中我们应该遵守一些不成文的标准,这对于我们与他人的交流和自己的再学习都是有益无害的。
  ?牐牨喑痰墓讨校颐怯ψ袷匾恍┏晌牡幕虿怀晌牡谋曜肌K淙徽庑┍曜级杂诔绦蛟诩扑慊系脑诵幸庖宀淮螅杂谖颐堑难?习交流却意义深远。也就是说,这些准则没有对程序的逻辑结构做出硬性规定,但对程序的外观却提出了规范化的要求。
  ?牐犑褂猛骋槐嗦朐级?集的主要原因,是使应用程序的结构和编码风格标准化,以便于阅读和理解。好的编码可使源代码的可读性强且意义清楚,与其他语言约定相一致,并且尽可能直观。我们自己一眼能看出个大概,在别人眼中也不至于成为千古奇书。
  ?牐燰B编程过程中,主要有如下约定。
  #1    一、对象命名约定
  ?牐犛Ω檬褂靡恢碌那白豪疵韵螅谷嗣侨菀资侗鸲韵蟮睦嘈汀@缥颐浅S每丶﨏ommandButton(命令按钮)可用cmd做为其前缀。与之似,Form以frm,Image以img,Label以lbl,List Box以lst,Picture Box以pic,Timer以tmr做为前缀是很方便区分的。在我们编程的过程中,我们看到下面的名称cmdExit我们就知道这一定是一个命令按钮了。如果是第三方提供的控件,我们的说明最好要清晰地标出制造商的名称,以区别于我们的常用控件。
  #1    二、常量和变量命名约定
  ?牐牫丝丶酝猓A亢捅淞恳彩俏颐潜喑坦讨芯S龅降模颐且彩峭ü趾退谴蚪坏赖摹?
  #2?牐?1.给变量加范围前缀
  ?牐牨淞堪雌渥饔梅段Э煞肿鋈啵碳叮?榧逗腿郑晕颐窃诒喑痰墓讨杏?将三者加以区别。
  ?牐犖颐窃谑褂帽淞渴保烁玫靥逑执胫赜煤涂晌ぴ颍涠ㄒ宸段в?尽量缩小,这样将使我们的应用程序更加容易理解和易于控制。
  ?牐犜赩B应用程序中,只有当没有其他方便途径在窗体间共享数据时才使用全局变量。当使用全局变量时,在一个单一模块中声明它们,并按功能分组,给模块取一个有意义的名字。较好的编码习惯是尽可能地用模块化的代码。除了全局变量,过程和函数应该仅对传递给它们的的对象操作。在过程中使用的全局变量应该在过程起始处的声明部分标识出来。
  ?牐牨淞康淖饔梅段?前缀如下:全局g(global),模块级m(model),本地过程不需要使用。例如:gintFlag表示全局整型变量,mstrPassword可表示模块级字符型变量。
  #2?牐?2.声明所有变量原则
  ?牐犐魉斜淞拷峤谑”喑淌奔洌氪砦蠼蟠蠹跎伲颐强稍诔绦蚩夹瓷先缦掠锞洌?
  ?牐燨ption Explicit
  ?牐牳糜锞湟笤诔绦蛑猩魉斜淞俊?
  #2?牐?3.变量数据类型声明
  ?牐牽赏ü旅娴那白豪醋魑淞康氖堇啾曛尽?
  ?牐燘oolean bln
  ?牐燘yte byt
  ?牐燚ouble dbl
  ?牐營nteger int
  ?牐燬tring str
  #2?牐?4.常量
  ?牐牫A康拿勺裱氤A棵筇逑嗤脑颉?
  #2?牐?5.对变量和过程名作出描述
  ?牐牨淞炕蚬堂闹魈逵Ω檬褂么笮⌒椿旌系男问剑⑶矣Ω糜凶愎怀ざ纫悦枋鏊淖饔谩6遥σ砸桓龆士罚鏙udgeDialog。
  #1    三、结构化编码约定
  ?牐牫松鲜龅脑级ㄍ猓峁够某绦蚍绺穸杂谖颐鞘导时喑桃埠苡幸庖澹杉蟮馗纳拼氲目啥列浴=峁够嗦朐级ㄖ饕写胱⑹秃鸵恢滦运踅?
  #2?牐?1.代码注释约定
  ?牐犓械墓毯秃加Ω靡悦枋稣舛喂痰墓δ艿囊欢渭蛎鞯淖⑹涂迹得鞲贸绦蚴歉墒裁吹模劣谑侨绾巫龅模簿褪潜喑痰南附冢詈貌灰āR蛭蘸笪颐强赡芤薷某绦颍庋龌岽床槐匾淖⑹臀すぷ鳎绻恍薷模徒峁┪蟮夹畔ⅲ赡艹晌砦蟮淖⑹停蛭氡旧砗秃竺娉绦蛑械淖⑹徒鸬较嘤Φ乃得髯饔谩?
  ?牐牴讨械淖⑹涂橛Ω冒ㄈ缦卤晏猓?
  ?牐犘〗?  描述内容
  ?牐犇康?  该过程完成什么
  ?牐牸偕?  列出每个外部变量、控件、打开文件或其他不明显元素
  ?牐犘Ч?  列出每个被影响的外部变量、控件或文件及其作用(只有当它不明显时)
  ?牐犑淙?  每一个可能不明显的参数
  ?牐牱祷?  函数返回值的说明
  #2?牐?2.格式化代码
  ?牐犗旅媸荲B中的计算器示例的一部分,从中我们不难看出格式化代码的约定。
  ?牐牐?1)标准的,基于制表位的嵌套应该包括一个嵌注释,用来描述该变量的使用。
  ?牐牐?2)变量、控件及过程的命名应该足够清楚,使得只有复杂的执行细节才需要嵌入注释。
  ?牐牐?3).bas 模块包含工程的VB一般常量声明,在其起始处,应包括程序的综述,列举主要数据对象,过程、算法、对话、数据库及系统需求。
  ?牐燨ption Explicit
  ?牐燚im Op1,Op2 '预先输入操作数。
  ?牐燚im DecimalFlag As Integer '小数点存在吗?
  ?牐燚im NumOps As Integer '操作数个数。
  ?牐燚im LastInput '指示上一次按键事件的类型。
  ?牐燚im OpFlag '指示未完成的操作。
  ?牐燚im TempReadout
  ?牐牐?小数点(.)按钮的 Click 事件过程
  ?牐牐?如果上一次按键为运算符,初始化 readout 为 “0.”;
  ?牐牐Х裨蛳允臼弊芳右桓鲂∈恪?
  ?牐燩rivate Sub Decimal_Click()
  ?牐營f LastInput = “NEG” Then
  ?牐燫eadout = Format(0,“-0.”)
  ?牐燛lseIf LastInput <> “NUMS” Then
  ?牐燫eadout = Format(0,“0.”)
  ?牐燛nd If
  ?牐燚ecimalFlag = True
  ?牐燣astInput = “NUMS”
  ?牐燛nd Sub
  ?牐犘闯绦蚝妥鋈艘谎獗硪彩欠浅V匾模俏颐墙涣髦胁豢扇鄙俚亩鳌R陨暇槎云渌喑逃镅酝视茫M芏猿跹д叩哪阌兴镏?