[英]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.