我正在尝试通过 Windows 7 上的 WSH 访问由 JScript 的 COM 方法返回的数组的成员。
该方法的文档如下(作为 C# 示例给出):
public System.Array GetValues();
所以根据这个,它返回一个.NET System.Array。这一切都很好,但这是我的代码:
// report is Scripting.FileSystemObject file handle
// var is a COM object
arr = var.GetValues();
val = ??
report.WriteLine(val);
这是我尝试过的:
val = arr.Length // produces empty string
val = arr.GetLength() // "Object doesn't support this property or method"
val = arr.GetValue(0) // "Object doesn't support this property or method"
所以显然它不是 System.Array 对象,因为这些方法不起作用。也许它是一个 JScript Array 对象?
val = arr[0] // empty string
val = arr.length // empty string
val = arr.pop() // "Object doesn't support this property or method"
所以它也不是一个 Array 对象?我猜它可能是一个内在类型数组:
val = typeof(arr[0]) // "undefined"
val = typeof(arr) // "unknown"
作为最后的手段,我将它加载到 Vbsedit 并在那里放置一个断点,Vbsedit 显示一个包含 800 个值的数组!我只是不知道如何访问它们。