微信公众号 
图码生活

每天发布有五花八门的文章,各种有趣的知识等,期待您的订阅与参与
电脑报 1992-2001 十年文章全集
电脑报 1992-2001 十年文章全集
包含从 1992 年 - 2001 年间,两万余篇期刊文章,查询最少输入两个字符
随便看看
读取中
读取中
标题VB过程中的参数传递
栏目OA专刊
发布1999年第8期37版
  在学习编VB程序的过程中,学员常常会对过程中参数的数据类型和传递方式感到难以理解,下面就此问题作出说明。
  VB的代码通常需要某些关于程序状态的信息才能完成它的工作。信息包括在调用过程时传递到过程内的变量。当将变量传递到过程时,称变量为参数。
  1.参数的数据类型
  过程的参数被缺省为Variant数据类型。不过,也可以声明参数为其他数据类型。例如,下面的函数接受一个字符串和一个整数:
  Function WhatsForLunch(WeekDay As String, Hour As
  Integer) As String
  If WeekDay = "Friday" Then '根据星期几和时间,返回午餐菜单
  WhatsForLunch = "Fish"
  Else
  WhatsForLunch = "Chicken"
  End If
  If Hour > 4 Then WhatsForLunch = "Too Late"
  End Function
  2.按值传递参数
  按值传递参数时,传递的只是变量的副本。如果过程改变了这个值,则所作变动只影响副本而不会影响变量本身。用ByVal关键字指出参数是按值来传递的。
  例如:
  Sub PostAccounts(ByVal intAcctNum as Integer)
  ·
  ·'这里放语句
  ·
  End Sub
  3.按地址传递参数
  按地址传递参数,使过程用变量的内存地址去访问实际变量的内容。因此,将变量传递给过程时,通过过程可永远改变变量值。按地址传递参数在VB中是缺省的。
  如果给按地址传递的参数指定数据类型,就必须将这种类型的值传递给参数。可以给参数传递一个表达式,而不是数据类型。VB计算表达式,如果可能的话,还会按要求的类型将值传递给参数。
  把变量转换成表达式的最简单的方法就是把它放在括号内。例如,为了把声明为整数的变量传递给过程,该过程以字符串为参数,则可以用下面的语句:
  Sub CallingProcedure()
  Dim intX As Integer
  intX = 12 * 3
  Foo(intX)
  End Sub
  Sub Foo(Bar As String)
  MsgBox Bar 'Bar的值为字符串'36'
  End Sub