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