VB DLL Variant()到c#

时间:2018-04-26 13:47:19

标签: c# vb.net vba dll

我有一个使用DLL库的Excel文件(使用VB代码)。 原始的VB代码如下:

Dim Inputs() As Double
Dim Outputs() As Variant
ReDim Inputs(1 To 1, 1 To NbrInputs&)
For i& = 1 To NbrInputs&
Inputs(1, i&) = CDbl(InRange(i&).Value)
Next i&

ABC.CalculateMatrix(Inputs#, Outputs)

相应的C#代码:

Array Inputs = Array.CreateInstance(
    typeof(double), 
    new[] { 1, NbrInputs },
    new[] { 1, 1 });        
for (int i = 1; i <= NbrInputs; i++)
{
    double value = Convert.ToDouble(InRange[i].Value);
    Inputs.SetValue(value, 1, i);
}


ABC.CalculateMatrix(Inputs, Outputs);

但是如何声明输出有一个问题??? 以下选项不起作用

Object[] Outputs = new Object[1]; //Object variable or With block variable not set
System.Array Outputs = Array.CreateInstance(typeof(Object), 1);//cannot convert from 'ref object[]' to 'ref System.Array'

System.Array Outputs = Array.CreateInstance(typeof(Object), 1);//Object variable or With block variable not set

非常感谢任何有关此事的帮助......

声明动态数组没有帮助

dynamic[] Outputs = new dynamic[1]; //Object variable or With block variable not set

0 个答案:

没有答案