我正在尝试设计一个接口,使其具有通用类型的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 }
}
我的问题是,将Model作为IEntity的第二个类型参数似乎有些愚蠢,因为我已经在Model的类中了,应该有一种智能的方法来确定它是什么类型(尽管使用泛型类型需要在编译时确定)。
是否有其他解决方案可以让我摆脱Model类型,同时保留接口中的Get方法定义?
MethodReturnType
替换为Object
。 - DialecticusIEntity<IDType>
,并将方法重新定义为IEntity Get();
,那么在其他地方的损失有多严重? - ClickRick