我正在尝试设计一个接口,以便它具有泛型类型的id和一个返回实现此接口的类的类型的泛型方法。例如:使用通用方法创建接口
public interface IEntity <IDType, MethodReturnType>
{
IDType ID {get; set;}
MethodReturnType Get();
}
public class Model : IEntity<int, Model>
{
int ID {get; set; }
Model Get() { // do something }
}
我的问题是,它似乎傻摆在型号为IEntity的第二个类型参数,因为我在模型的类是已经,应该是某种智能的方式来找出键入是(尽管使用泛型类型需要在编译之前确定它)。
是否有任何其他解决方案可以帮助我摆脱模型类型,同时在接口中保留Get方法定义?
ID是否允许您摆脱“int”?它不允许我用fw 4.0在vs 2010中编译它... – Gusman
不,没有办法。如果这是可能的,但..我设计的很多API都会更清晰! –
只有其他选项是将'MethodReturnType'替换为'Object'。 – Dialecticus