Vbscript 函数中的传递数组

Vbscript 函数中的传递数组,vbscript,Vbscript,我有一个数组,如下所示: MyArray(0)='test' MyArray(1)='test2' MyArray(2)='test3' returnValue = AcceptArray("MyString", MyArray) 如何将其传递给函数 Function(MyArray(all_arrays)) 我应该为所有数组设置什么?看起来您需要这样定义您的函数: Function <FunctionName>(byref <list Name>) 函数(by

我有一个数组,如下所示:

MyArray(0)='test'
MyArray(1)='test2'
MyArray(2)='test3'
returnValue = AcceptArray("MyString", MyArray)
如何将其传递给函数

Function(MyArray(all_arrays)) 

我应该为所有数组设置什么?

看起来您需要这样定义您的函数:

Function <FunctionName>(byref <list Name>)
函数(byref)
然后,当您在代码中调用它时,请使用

<FunctionName>(MyArray)
(MyArray)
可在此处找到:

仅使用数组名通过引用传递允许您将整个数组传递给函数

MyArray(0)='test'
MyArray(1)='test2
MyArray(2)='test3'

AcceptArray MyArray

Private Function AcceptArray(myArray())
'Code here
End Function
您似乎希望在数组之前传递字符串

因此,将函数更改为:

Private Function AcceptArray(param1, myArray)
'Code here
'Don't forget to return value of string type.
End Function
你可以这样调用这个函数:

MyArray(0)='test'
MyArray(1)='test2'
MyArray(2)='test3'
returnValue = AcceptArray("MyString", MyArray)
如果不需要返回值,则应使用Sub.

一个简单的示例

Dim MyArray(2)
MyArray(0) = "Test"
MyArray(1) = "Test2"
MyArray(2) = "Test3"

ProcessArray MyArray

' -------------------------------------
' ProcessArray
' -------------------------------------
Sub ProcessArray(ArrayToProcess())
  For i = 0 To 2
    WScript.Echo ArrayToProcess(i)
  Next
End Sub

我更熟悉VB.net,但我找到的源代码看起来很相似。希望这对函数有其他值有帮助吗?函数('test',MyArray())?只需相应地更改函数定义即可。然后用同样的方法在代码中调用它。将它定义为(byval str,bref-alist),然后当您调用它时使用('test',MyArray),当我传递函数('test',MyArray()作为字符串)时,我得到一个错误,您可以使用它:AcceptArray MyArray。如果要传递其他参数,则需要添加它。我会更新我的答案的。对不起,我不明白,它不会让我把字符串放在那里。。这导致了一个错误。我在网上找到的引用有:私有函数AcceptArray(byval param1,byref myArray)尝试类似的操作我修改了代码段,因为我认为您是在vb6中编码的,而不是在vbscript中。不必将变量类型与AS语句一起放入。函数参数不能包含括号。数组是作为普通变量传递的,没有
()
@AutomatedChaos,谢谢你的否决票…但是你错了。你真的试过代码吗?我稍微修改了它,使您更容易测试(
DIM
med数组,并添加了一个循环来打印值)。此外,接受的答案与我的答案几乎相同,但您没有否决它?我没有测试您的代码。现在我做了,它实际上是工作代码,所以我纠正了否决票。但不应该在函数参数中使用括号;它们不是必需的,而且令人困惑。在VBScript中,实际上可以在任何地方使用括号,但这并不意味着您应该这样做。你对被接受的答案是正确的,我也应该威胁它(我不是在个人征战,只是想在这里做一些有质量的事情)。@AutomatedChaos我感谢你改变你的投票,我很抱歉我看起来如此守势。您认为
()
不是必需的,这是正确的,但是我找不到任何迹象表明您不应该以这种方式使用它们。我能找到的唯一参考资料是在参考页上。甚至那一页也不清楚。当参数是数组或
()
是可选的时,我可以将其解释为使用
()
。我有点喜欢使用它们,因为它提醒您正在传递数组。