我需要调用一个函数,该函数将一个驱动器字母数组作为其参数之一。我从创建该对象的开发团队收到的示例使用VBScript,如下所示:
Array("C:","D:")
这在VB.NET中不起作用,所以我尝试了以下代码。注意:驱动器以逗号分隔的字符串传递给我:
Dim drives As String = "C,D"
Dim volumeList As String() = drives.Split(","c)
For i As Integer = 0 To volumeList.Length - 1
volumeList(i) &= ":"
Next
然后我尝试将volumeList传递给有问题的函数,我得到一个无效的参数异常。有没有其他方法我可以尝试创建/传递此数组,以便它像VBScript示例一样?我告诉开发人员我在做什么,他说“嗯......应该有效。”所以我想弄清楚,而不必强迫这个人帮助我。
编辑:com服务器需要一个类型为variant的数组(VB6)。那就是问题所在。可悲的是,我在VB.NET中尝试的一切都失败了。
答案 0 :(得分:0)
VB6变体数据类型等同于VB.Net中的对象。
Dim drives As String = "C,D"
Dim volumeList As String() = drives.Split(","c)
' Create an object array the same length as volumeList
Dim objectArray(volumeList.Length - 1) As Object
' Add the strings to the object array
For i As Integer = 0 To volumeList.Length - 1
objectArray(i) = volumeList(i) & ":"
Next
' Now pass the object array to your function