COM 组件公开一个 API,该 API 需要对象类型的 ref 参数。根据此 API 的文档,它将用值数组填充 ref 对象。现在我的问题是在产品环境中,我无法预测我将返回的元素数量。
以下代码将起作用。
COMClass objCOM = new COMClass ();
object colOfInts= new int[10]; // What if I don't know the following will return array of size 10?
int errorcode = objCOM.FillThisIn(ref colOfInts);
但是如果我不知道 API 在 ref 中返回的数组的大小怎么办?
在这里更新
object colOfInts = null;
int errorcode = objCOM .FillThisIn(ref colOfInts);
现在,当我检查类型时,我得到 System.Int32[*]
基本上我需要遍历这个数组并检查元素是否存在
您将返回一个下限不为 0 的数组。这在 COM 互操作中并不罕见,下一个可能的选择是 1。您不必复制它,可以使用 Array.GetValue() 访问元素。 Array.GetLowerBound() 告诉您从哪里开始,Array.GetLength() 或 Array.GetUpperBound() 告诉您要走多远。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)