簡體   English   中英

如何為通用接口編寫本機模板化后備存儲?

[英]How can I write a native templated backing storage for a generic interface?

我有一個界面,說;

public interface ICustomCollection<T>
{
     void Add(T item);
     bool Remove(T item);
     bool Contains(T item);
}

我想創建一個訪問本機C / C ++ DLL(我也創建)的類,它提供了實現。 如何編寫托管類和本機代碼才能使用? 我知道interop基礎知識,但我不知道在這種情況下如何處理泛型類型。

當你稍微改變思路並要求T是一個派生自Object的接口類型時,你應該這樣做,那么C ++接口變得更加明顯。

這在Visual Studio 2010中構建良好:

template<class T>
public interface class ICustomCollection
{
     virtual void Add(T item);
     virtual bool Remove(T item);
     virtual bool Contains(T item);
};

template<class T>
public ref class GenericCustomCollection : ICustomCollection<T>
{
    virtual void Add(T item){ }
    virtual bool Remove(T item){ return false; }
    virtual bool Contains(T item){ return false; }
};

public ref class ConcreteCustomCollection : ICustomCollection<int>
{
public:
    virtual void Add(int item){ }
    virtual bool Remove(int item){ return false; }
    virtual bool Contains(int item){ return false; }
};

我剛剛建立了它所需的最低限度,你可以將它作為實現的起點。

如果你開始使用C ++ / CLI,這是一本好書: Expert C ++ / CLI

暫無
暫無

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

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