Microsoft® Visual Basic® Scripting Edition
VBScript 程式撰写规格
 VBScript 教学 
 上一页 | 下一页 

 

什麽是程式撰写规格?
程式撰写规格就是一些对您使用 Microsoft Visual Basic Scripting Edition 开发程式时会 有帮助的建议。它包含了下列数项: 使用一致的程式撰写规格之主要理由在於可以标准化一个 script 或一组 script 的架构和程 式码样式。如此一来,您和其它人便可以轻松地了解这些程式码的意义。使用良好的程式撰写 规格,可提高原始程式码的精确度、可读性和清晰度,而且可使它与其他程式语言规格更具一 致性和直觉性。
常数命名规格
早期的 VBScript 版本不能建立使用者自订常数。如果需要使用常数时,通常都是以一变数来 当作常数,同时使用全部大写的字母来命名以和一般的变数区别。而每个字之间则使用底线( _ )字元来做区隔。比如像:
 USER_LIST_MAX
 NEW_LINE
虽然现在这仍是一个辨别常数的可行办法,但因为现在可以使用 Const 陈述式来建立一个真正 的常数,所以您可能会希望改用另一种命名的架构。这个方式混合了大小写字母,同时在常数 之前加了一个「con」当作字首。比如像:
 conYourOwnConstant
变数命名规格
为了维持程式的可读性和一致性,请您在您的 VBScript 程式码内的变数名称前,加上下述的 字首。

子型态 字首 范例
Boolean bln blnFound
Byte byt bytRasterData
Date (Time) dtm dtmStart
Double dbl dblTolerance
Error err errOrderNum
Integer int intQuantity
Long lng lngDistance
Object obj objCurrent
Single sng sngAverage
String str strFirstName

变数的有效范围
变数应该尽可能的定义在最小的有效范围之中。VBScript 变数有下列几种有效范围:

有效范围 变数宣告的地点 可视性
程序层级 事件,函数,或 Sub 程序 可见范围在其宣告的程序中
Script 层级 HTML 网页的 HEAD 区段,需写在所有程序之外 Script 中的每一个程序都可见

变数有效范围字首
当 script 很大时,加上变数有效范围字首将可以快速区别变数的有效范围。一个置於型态字首之前 的单一字母之有效范围字首可以帮我们做到这点,同时又不会过度的增加变数名称的长度。

有效范围 字首 范例
程序层级 不必加 dblVelocity
Script 层级 s sblnCalcInProgress

有说明性的变数和程序名称
变数和程序名称应该使用大小写混合的命名名称,同时这个名称应该尽可能地能够说明变数的用途。此外, 程序名称应该以动词开头,比如像 InitNameArray 或 CloseDialog。

对於一些经常使用的长名词,我们建议您使用标准的缩写,以免名称过长。一般来说,名称长度如果超过 32 个字元就很难阅读。当您使用缩写时,请在全部的 script 中都保持相同的缩写方式。举例来说,如 果您在一个 script 或一组 script 中时而用 Cnt,时而用 Count,那麽有时可能会造成困扰。

物件命名规格
下清单格列出了您在撰写 VBScript 时会遭遇的物件型态及建议的命名规格。

物件型态 字首 范例
3D Panel pnl pnlGroup
Animated button ani aniMailBox
Check box chk chkReadOnly
Combo box, drop-down list box cbo cboEnglish
Command button cmd cmdExit
Common dialog dlg dlgFileOpen
Frame fra fraLanguage
Horizontal scroll bar hsb hsbVolume
Image img imgIcon
Label lbl lblHelpMessage
Line lin linVertical
List Box lst lstPolicyCodes
Spin spn spnPages
Text box txt txtLastName
Vertical scroll bar vsb vsbRate
Slider sld sldScale

程式注解规格
所有的程序都应该以一简短的注解当作开头来解释程序的功用。这些说明不必解释程式制作的细节 (它怎 麽做到的), 因为这些内容可能时时会改变。如此一来,您就不必做一些不必要的注解维护工作,或是让 您的注解错误百出。这些程式码本身和所有必要的行间注解就足以说明制作的方式。

当要传递到程序中的引数之目的不是很明显时,或是程序预期引数的值应该介於某个范围之间时,您就应 该在注解中说明。函数的传回值以及会被程序更动的变数,特别是经由引用的引数,也都应该写在程序的 前头的注解中。

程序的开头注解应该包含下列几个区段标题。您可以叁考以下「格式化您的程式码」中的例子。

区段标题 注解内容
目的(Purpose) 程序的功用(不是如何达成其功用)。
假设(Assumptions) 列出任何会影响这个程序的外部变数、控制项或其它元件。
影响(Effects) 列出这个程序会影响的任何外部变数、控制项或其它元件。
输入(Inputs) 解释每一个没有明显功能的引数。每一个引数都应该自成一行,同时使用行间注解。
传回值(Return Values) 解释传回值的意义。
请记得下列几个要点:

格式化您的程式码
尽可能保留萤幕的空间,但是同时要让您的程式格式可以反映程式的逻辑结构和巢状架构。这里有几个要点:

 '*********************************************************
 ' Purpose:  Locates the first occurrence of a specified user 
 '           in the UserList array.
 ' Inputs:   strUserList():   the list of users to be searched.
 '           strTargetUser:   the name of the user to search for.
 ' Returns:  The index of the first occurrence of the strTargetUser 
 '           in the strUserList array. 
 '           If the target user is not found, return -1.
 '*********************************************************

 Function intFindUser (strUserList(), strTargetUser)
     Dim i                     ' Loop counter.
     Dim blnFound	       ' Target found flag
     intFindUser = -1
     i = 0                     ' Initialize loop counter
     Do While i <= Ubound(strUserList) and Not blnFound
         If strUserList(i) = strTargetUser Then 
             blnFound = True   ' Set flag to True
             intFindUser = i   ' Set return value to loop count
         End If
         i = i + 1             ' Increment loop counter
     Loop
 End Function

[an error occurred while processing this directive]