VB编程必须养成的八个习惯
来源: 作者: 时间:2010/11/15 14:08:01
     1、"&"替换"+"

  在很多人的编程语言中,用“+”来连接字符串,这样容易导致歧义。良好的习惯是用“&”来连接字符串.

  不正确:

  Dim sMessage As String

  sMessage = "1" + "2"

  正确:

  Dim sMessage As String

  sMessage = "1" & "2"

  注意:"&"的后面有个空格

  2、变量命名大小写,语句错落有秩,源代码维护方面

  下面大家比较一下以下两段代码:

  读懂难度很大的代码:

  Dim SNAME As String

  Dim NTURN As Integer

  If NTURN = 0 Then

  If SNAME = "vbeden" Then

  Do While NTURN < 4

  NTURN = NTURN + 1

  Loop

  End If

  End If

  容易读懂的代码:

  Dim sName As String

  Dim nTurn As Integer

  If nTurn = 0 Then

  If sName = "vbeden" Then

  Do While nTurn < 4

  nTurn = nTurn + 1

  Loop

  End If

  End If

[NextPage]

  

  3、请养成以下的“对象命名约定”良好习惯

  推荐使用的控件前缀

  控件类型 前缀 例子

  复选框Check box chk chkReadOnly

  组合框Combo box cbo cboEnglish

  命令按钮Command button cmd cmdExit

  通用对话框Common dialog dlg dlgFileOpen

  目录列表框Directory list box dir dirSource

  驱动器列表框Drive list box drv drvTarget

  文件列表框File list box fil filSource

  窗体Form frm frmEntry

  图象框Image img imgIcon

  标签Label lbl lblHelpMessage

  列表框List box lst lstPolicyCodes

  菜单Menu mnu mnuFileOpen

  单选按钮Option button opt optGender

  图片框Picture box pic picVGA

  文本框Text box txt txtLastName

  时钟控件Timer tmr tmrAlarm

  变量

  声明所有的变量将会节省编程时间,因为键入操作引起的错误减少了(例如,究竟是 aUserNameTmp,还是 sUserNameTmp,还是 sUserNameTemp)。在“选项”对话框的“编辑器”标签中,复选“要求变量声明”选项。Option Explicit 语句要求在 Visual Basic 程序中声明所有的变量。

  应该给变量加前缀来指明它们的数据类型。而且前缀可以被扩展,用来指明变量范围,特别是对大型程序。

  用下列前缀来指明一个变量的数据类型。

  变量数据类型

  数据类型 前缀 例子

  String (字符串类型) str strFName

  Integer (短整数类型) int intQuantity

  Long (长整数类型) lng lngDistance

  Single (单精度浮点数类型) sng sngAverage

  Double (双精度浮点数类型) dbl dblTolerance

  Boolean (布尔类型) bln blnFound

  Byte(字节类型) byt bytRasterData

  Date (日期类型) dte dteNow

  Currency (货币类型) cur curRevenue

  Object (对象类型) obj objCurrent

  Variant (变体类型) vnt vntCheckSum

  4、在简单的选择条件情况下,使用IIf()函数

  繁琐的代码:

  If nNum = 0 Then

  sName = "sancy"

  Else

  sName = "Xu"

  End If

  简单的代码:

  sName=IIf(nNum=0,"sancy","Xu")

  5、尽量使用Debug.Print进行调试

  在很多初学者的调试中,用MsgBox来跟踪变量值.其实用Debug.Print不仅可以达到同样的功效,而且在程序最后编译过程中,会被忽略.而MsgBox必须手动注释或删除.

  通常:

  MsgBox nName

  应该:

  Debug.Print nName

[NextPage]

  6、在重复对某一对象的属性进行修改时,尽量使用With....End With

  通常:

  Form1.Height = 5000

  Form1.Width = 6000

  Form1.Caption = "This is MyLabel"

  应该:

  With Form1

  .Height = 5000

  .Width = 6000

  .Caption = "This is MyLabel"

  End With

  这种结构程序执行效率比较高,特别在循环语句里。

  7、MsgBox中尽量使用消息图标,这样程序比较有规范

  一般来说

  vbInformation 用来提示确认或成功操作的消息

  vbExclamation 用来提示警告的消息

  vbCritical 用来提示危机情况的消息

  vbQuestion 用来提示询问的消息

  8、在可能的情况下使用枚举

  枚举的格式为

  [Public | Private] Enum name

  membername [= constantexpression]

  membername [= constantexpression]

  ....

  End Enum

  Enum 语句包含下面部分:

  部分 描述

  Public 可选的。表示该 Enum 类型在整个工程中都是可见的。Enum 类型的缺省情况是 Public。

  Private 可选的。表示该 Enum 类型只在所声明的模块中是可见的。

  name 必需的。该 Enum 类型的名称。name 必须是一个合法的 Visual Basic 标识符,在定义该 Enum 类型的变量或参数时用该名称来指定类型。

  membername 必需的。用于指定该 Enum 类型的组成元素名称的合法 Visual Basic 标识符。

  constantexpression 可选的。元素的值(为 Long 类型)。可以是别的 Enum 类型。如果没有指定 constantexpression,则所赋给的值或者是 0(如果该元素是第一个 membername),或者比其直接前驱的值大 1。

  说明

  所谓枚举变量,就是指用 Enum 类型定义的变量。变量和参数都可以定义为 Enum 类型。Enum 类型中的元素被初始化为 Enum 语句中指定的常数值。所赋给的值可以包括正数和负数,且在运行时不能改变。例如:

  Enum SecurityLevel IllegalEntry = -1 SecurityLevel1 = 0 SecurityLevel2 = 1 End Enum

  Enum 语句只能在模块级别中出现。定义 Enum 类型后,就可以用它来定义变量,参数或返回该类型的过程。不能用模块名来限定 Enum 类型。类模块中的 Public Enum 类型并不是该类的成员;只不过它们也被写入到类型库中。在标准模块中定义的 Enum 类型则不写到类型库中。具有相同名字的 Public Enum 类型不能既在标准模块中定义,又在类模块中定义,因为它们共享相同的命名空间。若不同的类型库中有两个 Enum 类型的名字相同,但成员不同,则对这种类型的变量的引用,将取决于哪一个类型库具有更高的引用优先级。

  不能在 With 块中使用 Enum 类型作为目标。

  Enum 语句示例

  下面的示例演示用 Enum 语句定义一个命名常数的集合。在本例中是一些可以选择的颜色常数用于设计数据库的数据输入窗体。

  Public Enum InterfaceColors

  icMistyRose = &HE1E4FF&

  icSlateGray = &H908070&

  icDodgerBlue = &HFF901E&

  icDeepSkyBlue = &HFFBF00&

  icSpringGreen = &H7FFF00&

  icForestGreen = &H228B22&

  icGoldenrod = &H20A5DA&

  icFirebrick = &H2222B2&

  End Enum

  好处是加快编程速度

免责声明:本文仅代表作者个人观点,与总裁世界无关。其原创性以及文中陈述内容的真实性、完整性、及时性本站不作任何保证或承诺,总裁世界对所有观点均保持中立态度,请读者仅作参考,并请自行核实相关内容。
网站首页 - 关于我们 - 版权声明 - 广告服务 - 网站地图 - 会员专区 - 客户服务 - 疑难解答 - 联系我们
总裁世界 版权所有Copyright © 2004 - 2017 www.ceoedu.com/www.ceoedu.com
总机电话:0755-88844436   业务联系:0755-83692700   中国·深圳 粤ICP备14047004号
客服咨询
24小时客服在线
马上咨询