Function 调用存储在字符串变量中的函数名?
我正在使用VBScript,我想知道是否有任何方法可以调用存储在字符串变量中的函数名 这是我的尝试Function 调用存储在字符串变量中的函数名?,function,vbscript,Function,Vbscript,我正在使用VBScript,我想知道是否有任何方法可以调用存储在字符串变量中的函数名 这是我的尝试 a = "b" sub b() msgbox "c" end sub a() 但它总是导致错误 类型不匹配“a” 看起来,例如,这应该是可行的: Dim a a = "Call b()" Eval(a) Sub b ' Do stuff End Sub 正确答案是:使用GetRef(),如下所示: 输出: aa 246 非常感谢你的帮助@用户433531请查看Ekkeh
a = "b"
sub b()
msgbox "c"
end sub
a()
但它总是导致错误
类型不匹配“a”
看起来,例如,这应该是可行的:
Dim a
a = "Call b()"
Eval(a)
Sub b
' Do stuff
End Sub
正确答案是:使用GetRef(),如下所示: 输出:
aa
246
非常感谢你的帮助@用户433531请查看Ekkehard.Horner的答案,
GetRef
是正确(安全)的方法Eval
不安全,使用全局作用域,速度慢,并且无法在函数中轻松传递参数。由GetRef创建的函数指针可以作为对象传递,这是一个巨大的pro;任务是通过函数名调用函数。请您详细说明您的答案,并添加有关您提供的解决方案的更多描述,好吗?
aa
246
Dim x
Sub b
print "xxx"' Do stuff
End Sub
x = "call b()"
Execute(eval("x"))