編碼約定是幫助您使用 microsoft visual basic scripting edition 編寫代碼的一些建議。編碼約定包含以下內容:
使用一致的編碼約定的主要原因是使 script 或 script 集的結構和編碼樣式標準化,這樣代碼易于閱讀和理解。使用好的編碼約定可以使源代碼明白、易讀、準確,更加直觀且與其他語言約定保持一致。
vbscript 的早期版本不允許創建用戶自定義常數。如果要使用常數,則常數以變量的方式實現,且全部字母大寫以和其他變量區分。常數名中的多個單詞用下劃線 (_) 分隔。例如:
user_list_max new_line這種標識常數的方法依舊可行,但您還可以選擇其他方案,用 const 語句創建真正的常數。這個約定使用大小寫混合的格式,并以“con”作為常數名的前綴。例如:
conyourownconstant出于易讀和一致性的目的,請在 vbscript 代碼中使用以下變量命名約定:
子類型前綴示例booleanblnblnfoundbytebytbytrasterdatadate (time)dtmdtmstartdoubledbldbltoleranceerrorerrerrordernumintegerintintquantitylonglnglngdistanceobjectobjobjcurrentsinglesngsngaveragestringstrstrfirstname變量應定義在盡量小的作用域中。vbscript 變量的作用域如下所示:
作用域聲明變量處可見性過程級事件、函數或子過程在聲明變量的過程中可見script 級html 頁面的 head 部分,任何過程之外在 script 的所有過程中可見隨著 script 代碼長度的增加,有必要快速區分變量的作用域。在類型前綴前面添加一個單字符前綴可以實現這一點,而不致使變量名過長。
作用域前綴示例過程級無dblvelocityscript 級ssblncalcinprogress變量名或過程名的主體應使用大小寫混合格式,并且盡量完整地描述其目的。另外,過程名應以動詞開始,例如 initnamearray 或 closedialog。
對于經常使用的或較長的名稱,推薦使用標準縮寫以使名稱保持在適當的長度內。通常多于 32 個字符的變量名會變得難以閱讀。使用縮寫時,應確保在整個 script 中保持一致。例如,在一個 script 或 script 集中隨意切換 cnt 和 count 將造成混亂。
下表列出了 vbscript 中可能用到的對象命名約定(推薦):
對象類型前綴示例3d 面板pnlpnlgroup動畫按鈕anianimailbox復選框chkchkreadonly組合框、下拉列表框cbocboenglish命令按鈕cmdcmdexit公共對話框dlgdlgfileopen框架frafralanguage水平滾動條hsbhsbvolume圖像imgimgicon標簽lbllblhelpmessage直線linlinvertical列表框lstlstpolicycodes旋鈕spnspnpages文本框txttxtlastname垂直滾動條vsbvsbrate滑塊sldsldscale所有過程的開始部分都應有描述其功能的簡要注釋。這些注釋并不描述細節信息(如何實現功能),這是因為細節有時要頻繁更改。這樣就可以避免不必要的注釋維護工作以及錯誤的注釋。細節信息由代碼本身及必要的內部注釋來描述。
當傳遞給過程的參數的用途不明顯,或過程對參數的取值范圍有要求時,應加以說明。如果過程改變了函數和變量的返回值(特別是通過參數引用來改變),也應在過程的開始部分描述該返回值。
過程開始部分的注釋應包含以下區段標題。相關樣例,請參閱后面的“格式化代碼”部分。
區段標題注釋內容目的過程的功能(不是實現功能的方法)。假設其狀態影響此過程的外部變量、控件或其他元素的列表。效果過程對每個外部變量、控件或其他元素的影響效果的列表。輸入每個目的不明顯的參數的解釋。每個參數都應占據單獨一行并有其內部注釋。返回返回值的解釋。請記住以下幾點:
應盡可能多地保留屏幕空間,但仍允許用代碼格式反映邏輯結構和嵌套。以下為幾點提示:
'*********************************************************
' 目的: 返回指定用戶在 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
新聞熱點
疑難解答