簡體   English   中英

以“類型安全”的方式將數組從c ++ / cli傳遞到C#

[英]pass array from c++/cli to C# in a 'typesafe' way

哪一種以類型安全的方式從c ++ / cli返回對象的列表/向量/數組到c#的最簡單方法?

//C++/CLI project 1
public ref class MyClass
{
}

public ref class Factory
{
    array<MyClass^> getObjects() {...}
}

//C# project 2
Factory f = new Factory();
System.Array a = f.getObjects(); // not typesafe! I'd like to get an array/list/vector of MyClass elements

我嘗試返回一個

List<MyClass^> 

從C ++並閱讀

IList<MyClass^> 

從C#開始,它沒有編譯...

謝謝克里斯

C ++ / CLI中的數組是“托管指針”(稱為引用),因此將其寫為array<Type>^ 您可以通過gcnew array<Type, dimension>(count)初始化它,當維度為1時,它等於C# new Type[count]

因此,在您的情況下,它可能看起來像這樣:

array<MyClass^>^ getObjects() { 
    return gcnew array<MyClass^,1>(number) ; 
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM