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