[英]A List<Tuple<int, float>> in managed C++
我正在研究一些使用托管C ++包裝器和C#中的用戶界面用本機C ++編寫的軟件。 我需要將一些信息從本機代碼傳遞到接口。 我認為傳遞信息的最佳方式是在元組列表中。 我知道在本機C ++中我需要使用list<tuple<..>>
並且工作正常。 我現在要做的是,在包裝器中獲取該輸出,並返回一個List<Tuple<..>>
,它是System::Collections::Generic::List
和System::Tuple
而不是stl來自本地的。 我知道列表在語法上是非常不同的,但這應該不是問題。 在C#代碼中,編譯器接受List<Tuple<..>>
,但在托管C ++代碼中則不然。 我這樣做錯了/我使用了錯誤的數據類型嗎? 任何幫助都是極好的!
嘗試這樣的事情:
using namespace System::Collections::Generic;
// A List<Tuple<int, float>> in managed C++
public ref class TupleTest
{
public:
static List<Tuple<int, float>^>^ GetTuple() {
List<Tuple<int, float>^>^ ret = gcnew List<Tuple<int,float>^>();
Tuple<int,float>^ t = gcnew Tuple<int,float>(5, 2.6);
ret->Add(t);
return ret;
}
};
注意:如果您願意,可以使用Int32和Single(或Double)代替int / float。
編輯:注意^
運算符。 這些表示C ++ / CLI引用類型。 你會經常使用它們! (它有點像*
常規C ++中的指針,但意味着GC的引用類型)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.