VBScript:将对象传递给函数?

时间:2010-03-19 16:12:37

标签: function vbscript

以下示例生成错误:

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!

3 个答案:

答案 0 :(得分:3)

获取返回值时仅使用括号。对于不返回某些内容的函数,也使用Sub而不是Function。

答案 1 :(得分:2)

括号只能在..

时使用
  1. 您正在调用一个返回值的函数。
  2. 当您调用的子/函数只接受1个参数时。
  3. 如果您使用Call关键字在呼叫之前,例如。 Call TestFunc(obj)

答案 2 :(得分:1)

这一行

obj.Add("key", "val")

导致问题

更改为

obj.Add "key", "val"

obj.Add是一个像错误一样的子,你不能使用parens,但是你的TestFunc是一个函数,可以用parens调用