"无效的程序调用"传递变量作为参数与传递另一个函数的返回值时出错

时间:2015-07-31 13:26:16

标签: .net vbscript

我收到错误:

  

无效的程序调用或参数:' AddRange'

将变量传递给ArrayList.AddRange()时,但是当我传递函数的返回值时,代码工作正常,即

我的清单:

Dim Foo
Set Foo = CreateObject("System.Collections.ArrayList")

添加GetList()返回的新列表可以正常工作:

Call Foo.AddRange(GetList()) ' works fine

Function GetList()
  Set GetList = CreateObject("System.Collections.ArrayList")
End Function

但是传递带有变量(x)的新列表会引发错误:

Dim x
Set x = CreateObject("System.Collections.ArrayList")

Call Foo.AddRange(x)  ' error: invalid procedure call or argument: 'AddRange'

发生了什么事?

1 个答案:

答案 0 :(得分:3)

看起来你需要按值传递数组列表。这有效:

Call Foo.AddRange((x))

内部括号集导致参数传递ByVal而不是ByRef