通过ref将函数传递给scripting.dictionary []

时间:2016-03-10 23:21:42

标签: vbscript

我正在处理小型VBScript并尝试创建class ViewController: UIViewController { var stopSelectedHandler: (Int) -> Void = { selectedStop in // Do something here. // setUpMap() } .... } 。我必须通过ref将该字典数组传递给函数。我通过编译库获得了该功能。功能定义如下。

scripting.dictionary[]

我的代码行在这里

public string Update(string name, ref Scripting.Dictionary[] Data, string sRecordId = "")

有问题的区域是Set objQWS = CreateObject("Dll") Set X = PassDictionary objQWS.Update "Name", x, "" MsgBox "Additional Info Sent" Function PassDictionary() Dim objDic Set objDic = CreateObject("Scripting.Dictionary") objDic.Add "id", 1 objDic.Add "name", "a" objDic.Add "extd_price", "b" objDic.Add "sales_rep", "c" objDic.Add "opportunity_id", "d" Set PassDictionary = objDic End Function 功能。 每次运行代码时,在Update函数上它都会给出错误"类型不匹配"。任何人都可以告诉我,我该怎样才能使这件事有效?

1 个答案:

答案 0 :(得分:0)

您传递的是单个字典,而不是字典数组。尝试像

这样的东西
Set x = PassDictionary
arr = Array(x)
objQWS.Update "Name", arr, ""

不确定它是否会起作用,因为VBScript并不真正知道类型,所以数组的类型为Variant()

您可以尝试的另一件事是将参数的类型从Scripting.Dictionary[]更改为Scripting.Dictionary,因为您仍然只传递一个字典。