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 变量的作用域如下所示：

> 作用域 | 声明变量处 | 可见性
> 过程级 | 事件、函数或子过程 | 在声明变量的过程中可见
> 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

© 1997 Microsoft Corporation. All rights reserved. Terms of Use.