Kun*_*nal 3 generics inheritance abstract-class interface c#-4.0
我试图了解哪种层次结构最适合继承,如下所述。到目前为止,我有以下内容:
public interface IManager<T> where T : ISomeObject
{
bool Add(T o);
bool Remove(T o);
bool Update(T o);
}
Run Code Online (Sandbox Code Playgroud)
但是后来我希望每个派生类都有一个参数化的构造函数。所以我去了:
public abstract class Manager<T> : IManager<T> where T : ISomeObject
{
protected readonly INeededObject obj;
protected Manager(INeededObject o)
{
obj = o;
}
}
Run Code Online (Sandbox Code Playgroud)
关于我应该如何解决这个设计问题的任何想法?提前致谢。
您快到了。您也可以在基类中使用泛型类型参数。
public abstract class Manager<T> : IManager<T> where T : ISomeObject
{
protected readonly T obj;
protected Manager(T o)
{
obj = o;
}
}
Run Code Online (Sandbox Code Playgroud)
您也可以使用参数化类型,例如
protected Manager(IList<T> o)
{
...
}
Run Code Online (Sandbox Code Playgroud)