簡體   English   中英

一個列表 <Tuple<int, float> &gt;在托管C ++中

[英]A List<Tuple<int, float>> in managed C++

我正在研究一些使用托管C ++包裝器和C#中的用戶界面用本機C ++編寫的軟件。 我需要將一些信息從本機代碼傳遞到接口。 我認為傳遞信息的最佳方式是在元組列表中。 我知道在本機C ++中我需要使用list<tuple<..>>並且工作正常。 我現在要做的是,在包裝器中獲取該輸出,並返回一個List<Tuple<..>> ,它是System::Collections::Generic::ListSystem::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.

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