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 變數的範圍如下所示:
| 範圍 |
聲明變數處 |
可見度 |
| 過程級 |
事件、函數或子過程 |
在聲明變數的過程中可見 |
| Script 級 |
HTML 頁面的 HEAD 部分,任何過程之外 |
在 Script 的所有過程中可見 |
變數範圍首碼
隨著 Script 代碼長度的增加,有必要快速區分變數的範圍。在類型首碼前面添加一個單字元首碼可以實現這一點,而不致使變數名過長。
| 範圍 |
首碼 |
樣本 |
| 過程級 |
無 |
dblVelocity |
| Script 級 |
s |
sblnCalcInProgress |
描述性變數名和過程名
變數名或過程名的主體應使用大小寫混合格式,並且盡量完整地描述其目的。另外,過程名應以動詞開始,例如 InitNameArray 或 CloseDialog。
對於經常使用的或較長的名稱,推薦使用標準縮寫以使名稱保持在適當的長度內。通常多於 32 個字元的變數名會變得難以閱讀。使用縮寫時,應確保在整個 Script 中保持一致。例如,在一個 Script 或 Script 集中隨意切換 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 |
代碼注釋約定
所有過程的開始部分都應有描述其功能的簡要注釋。這些注釋並不描述細節資訊(如何?功能),這是因為細節有時要頻繁更改。這樣就可以避免不必要的注釋維護工作以及錯誤的注釋。細節資訊由代碼本身及必要的內部注釋來描述。
當傳遞給過程的參數的用途不明顯,或過程對參數的取值範圍有要求時,應加以說明。如果過程改變了函數和變數的傳回值(特別是通過參數引用來改變),也應在過程的開始部分描述該傳回值。
過程開始部分的注釋應包含以下區段標題。相關範例,請參閱後面的“格式化代碼”部分。
| 區段標題 |
注釋內容 |
| 目的 |
過程的功能(不是實現功能的方法)。 |
| 假設 |
其狀態影響此過程的外部變數、控制項或其他元素的列表。 |
| 效果 |
過程對每個外部變數、控制項或其他元素的影響效果的列表。 |
| 輸入 |
每個目的不明顯的參數的解釋。每個參數都應佔據單獨一行並有其內部注釋。 |
| 返回 |
傳回值的解釋。 |
請記住以下幾點:
·每個重要的變數聲明都應有內部注釋,描述變數的用途。
·應清楚地命名變數、控制項和過程,僅在說明複雜細節時需要內部注釋。
·應在 Script 的開始部分包含描述該 Script 的概述,列舉對象、過程、運演算法則、對話方塊和其他系統從屬物。有時一段描述運演算法則的假碼是很有用的。
格式化代碼
應儘可能多地保留屏空間,但仍允許用代碼格式反映邏輯結構和嵌套。以下為幾點提示:
·標準嵌套塊應縮排 4 個空格。
·過程的概述注釋應縮排 1 個空格。
·概述注釋後的最高層語句應縮排 4 個空格,每一層嵌套塊再縮排 4 個空格。例如:
'*********************************************************
' 目的: 返回指定使用者在 UserList 數組中第一次出現的位置。
' 輸入: strUserList(): 所尋找的使用者列表。
' strTargetUser: 要尋找的使用者名稱。
' 返回: strTargetUser 在 strUserList 數組中第一次出現時的索引。
' 如果目標使用者未找到,返回 -1。
'*********************************************************
Function intFindUser (strUserList(), strTargetUser)
Dim i ' 迴圈計數器。
Dim blnFound ' 發現目標的標記。
intFindUser = -1
i = 0 ' 初始化迴圈計數器。
Do While i <= Ubound(strUserList) and Not blnFound
If strUserList(i) = strTargetUser Then
blnFound = True ' 標記設為 True。
intFindUser = i ' 傳回值設為迴圈計數器。
End If
i = i + 1 ' 迴圈計數器加 1。
Loop
End Function