VB DLL Variant() ถึง c# [ซ้ำกัน]

ฉันมีไฟล์ Excel ที่ใช้งานได้ (พร้อมรหัส VB) ซึ่งใช้ไลบรารี DLL รหัส 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);

แต่มีปัญหาจะประกาศ 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

person MRI    schedule 26.04.2018    source แหล่งที่มา
comment
ลองใช้ dynamic เพื่อแทนที่ variant   -  person Zohar Peled    schedule 26.04.2018
comment
เปลี่ยนเป็นไดนามิก ไดนามิก[] เอาท์พุต = ไดนามิกใหม่ [1]; //ไม่ได้ตั้งค่าตัวแปรวัตถุหรือตัวแปรบล็อก   -  person MRI    schedule 26.04.2018