子類型 | 前綴 | 示例 |
---|---|---|
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 變量的作用域如下所示:
作用域 | 聲明變量處 | 可見性 |
---|---|---|
過程級 | 事件、函數或子過程。 | 在聲明變量的過程中可見。 |
Script 級 | HTML 頁面的 HEAD 部分,任何過程之外。 | 在腳本的所有過程中可見。 |
隨著腳本代碼長度的增加,有必要快速區分變量的作用域。在類型前綴前面添加一個單字符前綴可以實現這一點,而不致使變量名過長。
作用域 | 前綴 | 示例 |
---|---|---|
過程級 | 無 | dblVelocity |
Script 級 | s | sblnCalcInProgress |
變量名或過程名的主體應使用大小寫混合格式,并且盡量完整地描述其目的。另外,過程名應以動詞開始,例如 InitNameArray 或 CloseDialog。
對于經常使用的或較長的名稱,推薦使用標準縮寫以使名稱保持在適當的長度內。通常多于 32 個字符的變量名會變得難以閱讀。使用縮寫時,應確保在整個腳本中保持一致。例如,在一個腳本或腳本集中隨意切換 Cnt 和 Count 將造成混亂。
下表列出了 VBScript 中可能用到的對象命名約定(推薦):
對象類型 | 前綴 | 示例 |
---|---|---|
3D 面板 | pnl | pnlGroup |
動畫按鈕 | ani | aniMailBox |
復選框 | chk | chkReadOnly |
組合框、下拉列表框 | cbo | cboEnglish |
命令按鈕 | cmd | cmdExit |
公共對話框 | dlg | dlgFileOpen |
框架 | fra | fraLanguage |
水平滾動條 | hsb | hsbVolume |
圖像 | img | imgIcon |
標簽 | lbl | lblHelpMessage |
直線 | lin | linVertical |
列表框 | lst | lstPolicyCodes |
旋鈕 | spn | spnPages |
文本框 | txt | txtLastName |
垂直滾動條 | vsb | vsbRate |
滑塊 | sld | sldScale |
所有過程的開始部分都應有描述其功能的簡要注釋。這些注釋并不描述細節信息(如何實現功能),這是因為細節有時要頻繁更改。這樣就可以避免不必要的注釋維護工作以及錯誤的注釋。細節信息由代碼本身及必要的內部注釋來描述。
當傳遞給過程的參數的用途不明顯,或過程對參數的取值范圍有要求時,應加以說明。如果過程改變了函數和變量的返回值(特別是通過參數引用來改變),也應在過程的開始部分描述該返回值。
過程開始部分的注釋應包含以下區段標題。相關樣例,請參閱后面的“格式化代碼”部分。
區段標題 | 注釋內容 |
---|---|
目的 | 過程的功能(不是實現功能的方法)。 |
假設 | 其狀態影響此過程的外部變量、控件或其他元素的列表。 |
效果 | 過程對每個外部變量、控件或其他元素的影響效果的列表。 |
輸入 | 每個目的不明顯的參數的解釋。每個參數都應占據單獨一行并有其內部注釋。 |
返回 | 返回值的解釋。 |
請記住以下幾點:
應盡可能多地保留屏幕空間,但仍允許用代碼格式反映邏輯結構和嵌套。以下為幾點提示:
'*********************************************************' 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 LoopEnd Function