子类型 | 前缀 | 示例 |
---|---|---|
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