如何使用CLI函数在C#中使用数组参数?

时间:2019-05-02 08:14:40

标签: c# c++-cli

我想通过CLI函数在C#中使用数组。

CLI来源

public value struct Test
{
    int         nIndex;
    TArrTest    Arr;    // TArrTest : Array struct
}

void Api::Set_Test(array<Test^>^% _Test2)

C#来源

Test[] Test3 = new Test[5];
test3[0].nIndex = 0;
...
...
Api.Set_Test(ref Test3) // Error message

错误消息: 该参数未将ref Test []转换为ref system.Value []。

如何在C#中调用Set_Test?

1 个答案:

答案 0 :(得分:1)

您的C ++ / CLI声明:

void Api::Set_Test(array<Test^>^% _Test2)

不正确。该数组不是Test引用的数组,因为Test是一个值类型。应该是

void Api::Set_Test(array<Test>^% _Test2)
                             ^------ remove the reference caret inside the angle brackets