编码约定包含以下容:对象、变量和过程的命名约定 注释约定 文本格式和缩进指南一致的编码约定使代码易于阅读和理解。
常数命名约定
使用Const语句常见常数,常数名使用大小写混合格式,并以con作为常数名的前缀,如:conYourName
变量命名约定
不同子类型变量的变量名前缀如下:
子类型前缀示例 BooleanblnblnFound BytebytbytRasterDataDate (Time)dtmdtmStartDoubledbldblToleranceErrorerrerrOrderNumIntegerintintQuantityLonglnglngDistanceObjectobjobjCurrentSinglesngsngAverageStringstrstrFirstName
变量又分为过程级变量和Script级变量,为了进一步区分过程级变量和Script级变量,我们在变量的类型前缀前加一个s表示Script级变量。例如:sblnCalcInProgress
变量名和过程名的主体应使用大小写混合格式,并且尽量完整的描述其目的。 此外过程名应以动词开始,如 InitNameArray或CloseDialog
对象命名约定
下面列出了常用对象的命名约定对象类型前缀示例3D 面板pnlpnlGroup动画按钮anianiMailBox复选框chkchkReadOnly组合框、下拉列表框cbocboEnglish命令按钮cmdcmdExit公共对话框dlgdlgFileOpen框架frafraLanguage水平滚动条hsbhsbVolume图像imgimgIcon标签lbllblHelpMessage直线linlinVertical列表框lstlstPolicyCodes旋钮spnspnPages文本框txttxtLastName垂直滚动条vsbvsbRate滑块sldsldScale
代码注释约定
每个过程的开始部分都应该有描述其功能的简要注释。这些注释并不描述细节信息,细节信息由代码和必要的内部注释来描述。
当传递给过程的参数的作用不明显,或过程对参数的取值范围有要求时,应当加以说明。 如果过程改变了函数或变量的返回值(特别是通过参数引用来改变),也应该在过程的开始部分描述该返回值。 过程的开始部分应该包含以下区段标题。
区段标题注释内容 目的过程的功能(不是实现功能的方法)。 假设其状态影响此过程的外部变量、控件或其他元素的列表。 效果过程对每个外部变量、控件或其他元素的影响效果的列表。 输入每个目的不明显的参数的解释。每个参数都应占据单独一行并有其内部注释。 返回返回值的解释。

请记住以下几点:

每个重要的变量声明都应有内部注释,描述变量的用途。 应清楚地命名变量、控件和过程,仅在说明复杂细节时需要内部注释。 应在 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