我正在处理小型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
函数上它都会给出错误"类型不匹配"。任何人都可以告诉我,我该怎样才能使这件事有效?
答案 0 :(得分:0)
您传递的是单个字典,而不是字典数组。尝试像
这样的东西Set x = PassDictionary
arr = Array(x)
objQWS.Update "Name", arr, ""
不确定它是否会起作用,因为VBScript并不真正知道类型,所以数组的类型为Variant()
。
您可以尝试的另一件事是将参数的类型从Scripting.Dictionary[]
更改为Scripting.Dictionary
,因为您仍然只传递一个字典。