我有一个用 Visual Fox Pro 9.0 编写的 COM 对象。它有以下程序:
PROCEDURE GetArray(m.vcArrayName as String) as array
RETURN @&vcArrayName
COM 对象在使用 C# 的 VS2010 项目中被引用。C#中过程的签名是:
object GetArray(string vcArrayName);
调试时我可以看到返回值是 {object[1..1]} 而类型是对象 {object[]}。展开变量,我可以看到它是一个以 1 为基数的数组,其中一个元素是一个空字符串 ("");
但是,我不能将此值转换为 object[]。我总是收到带有挪威语消息的 InvalidCastException,说我无法将 Object[*] 转换为 Object[]。
奇怪的是,如果 COM 对象返回一个二维数组,我可以毫无问题地将其转换为 object[,]。我觉得很奇怪,二维比一维更容易处理!
我想回答的问题是:
这个 Object[*] 业务是什么?谁能告诉我这是否是挪威异常消息中的错误翻译,或者 Object[*] 是否是我没听说过的某种晦涩的 C# 语法?