2012-01-10 16 views
0

これは、オブジェクトのリスト/ベクトル/配列をタイプセーフな方法でC++/cliからC#に戻すもっとも簡単な方法ですか?C++/cliからC#へ 'typesafe'の方法で配列を渡す

//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 

は、私はCから

List<MyClass^> 

を返す++とC#から

IList<MyClass^> 

を読んでみました、それは...

おかげで、 クリス

をコンパイルしませんでした
+1

あなたは、C#側で ''のIList を意味しましたか? – Douglas

+0

C#側の問題は何ですか? 'MyClass [] a = c.getObjects()'は機能しませんか? –

+0

はい、IList kcris

答えて

0

C++/CLIの配列は "管理されたポインタ"(参照と呼ばれる)なので、array<Type>^と書かれています。あなたは次元が1

ときだからあなたの場合には、それはこのようになり、C#new Type[count]に等しいgcnew array<Type, dimension>(count)を経由して、それを初期化することができます:

​​
関連する問題