以下示例生成错误:
VBScript编译错误:调用Sub时无法使用括号
如果所有参数都不是对象,则不会发生此错误。
是否有一种将对象参数传递给VBScript函数的特殊方法?
Option Explicit
Dim obj
Function TestFunc(obj)
WScript.Echo "Why doesn't this work?"
End Function
Set obj = CreateObject("Scripting.Dictionary")
obj.Add("key", "val")
TestFunc(obj) ' Error here!
答案 0 :(得分:3)
获取返回值时仅使用括号。对于不返回某些内容的函数,也使用Sub而不是Function。
答案 1 :(得分:2)
括号只能在..
时使用Call
关键字在呼叫之前,例如。 Call TestFunc(obj)
答案 2 :(得分:1)
这一行
obj.Add("key", "val")
导致问题
更改为
obj.Add "key", "val"
obj.Add是一个像错误一样的子,你不能使用parens,但是你的TestFunc是一个函数,可以用parens调用