加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

【重要】VB几种函数参数传递方法(含不定数量参数)

(2017-07-26 14:20:06)
分类: VB
VB几种函数参数传递方法,Variant,数组,Optional,ParamArray 
━━━━━━━━━━━━━━━━━━━━━━━━━
 
过程的参数被缺省为具有 Variant 数据类型。
   1)ByRef 按地址传递参数,在VB中是缺省的
   按地址传递参数后,过程返回的也是地址,函数中改变了的变量值也将带回来。
 
  2)ByVal 关键字指出参数是按值来传递的
   按值传递参数时,传递的只是变量的副本。如果过程改变了这个值,则所作变动只影响副本而不会影响变量本身。 
 
二)使用不定数量的参数 ParamArray
 
  一般说来,过程调用中的参数个数应等于过程说明的参数个数。可用 ParamArray 关键字指明,过程将接受任意个数的参数。于是可以这样来编写计算总和的 Sum 函数:
 
Dim As Integer,y As Integer,intSum As Integer
Sub Sum (ParamArray intNums ())
    
For Each In intNums
       x
    Next x
    intSum y
End Sub

调用方法    
Sum 1, 3, 5, 7, 8
 
三)Optional 关键字,使用可选的参数
    Optional 关键字,就可以指定过程的参数为可选的。如果指定了可选参数,则参数表中此参数后面的其它参数也必是可选的,并且要用 Optional 关键字来声明。
 
Dim strName As String,varAddress As Variant
Sub ListText (As String, Optional As Variant)
    
List1.AddItem x
    If Not IsMissing (yThen
        
List1.AddItem y
    End If
End Sub
 
调用
    1:  Call ListText("yourname" '未提供第二个参数。
    
2:  Call ListText("yourname",12345)
   
在未提供某个可选参数时,实际上将该参数作为具有 Empty 值的变体来赋值。
   上例说明如何用 IsMissing 函数测试丢失的可选参数。
 
四)Optional 声明arr()数组与Variant 方法
    通常用Optional  arr() As TypeName 为非法
    此时可声明函数变量为 Optional arr As Variant 
    
调用时可使用Fun(arr()) 
    
此时函数中可用LBound(arr)的UBound(arr)确定数组边界

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有