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