当ByVal指定时,为什么总是ByRef?

时间:2013-07-01 14:39:13

标签: vbscript byref

我正在浏览ByVal和ByRef through MSDN,当我们通过ByVal传递参数时,这些值总是由ByVal传递。

在我的下面示例中,它总是通过ByRef传递。我做错了什么?

  Function sampleFunction(ByVal val) 'Even though here i am passing as ByVal it is taking as ByRef
       val=val+1
        sampleFunction=val
    End Function

    x=50
    temp=sampleFunction(x)
    msgbox temp  'prints 51

如何从函数返回时通过ByVal传递参数?

1 个答案:

答案 0 :(得分:3)

您的功能正在接受50的值。然后将变量val递增1,以便该变量现在为51。然后它将返回值设置为val的值,即51。

因此,您的temp变量会被分配给返回值,即51.但是,您的x变量仍然是50,因为只有值被传递到function - x参数未被修改。

如果你在这里做了ByRef,那么x就是51。

相关问题