c#-4.0 - 通用接口(interface)的通用抽象基类

标签 c#-4.0 generics inheritance interface abstract-class

我试图了解什么层次结构最适合继承,如下所述。到目前为止,我已经有以下内容:

public interface IManager<T> where T : ISomeObject
{
    bool Add(T o);
    bool Remove(T o);
    bool Update(T o);
}

但后来我希望每个派生类都有一个参数化构造函数。所以我去了:

public abstract class Manager<T> : IManager<T> where T : ISomeObject
{
    protected readonly INeededObject obj;

    protected Manager(INeededObject o)
    {
         obj = o;
    }
}

关于我应该如何解决这个设计问题有什么想法吗?提前致谢。

最佳答案

你就快到了。您也可以在基类中使用泛型类型参数。

public abstract class Manager<T> : IManager<T> where T : ISomeObject
{
    protected readonly T obj;

    protected Manager(T o)
    {
         obj = o;
    }
}

您也可以使用参数化类型,例如

protected Manager(IList<T> o)
{
    ...
}

关于c#-4.0 - 通用接口(interface)的通用抽象基类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15581505/

相关文章:

java - 如何使用继承的方法在继承层次结构的每个级别显示 SimpleClassName?

c# - 如果特定单元格值在数据表 C# 中包含零,则跳过整行

swift - Swift 中的通用类型别名

java - 如何使用采用某些枚举类型实例的方法创建接口(interface)?

java - 可以在父类(super class)中声明一个返回子类类型对象的方法吗?

c++ - 为什么范围解析不适用于重写变量?

c# - 为什么线程之间意外共享 ThreadStatic 数据?

c# - 任务完成后如何调用过程

c# - 什么时候应该在 C# 4.0 中使用动态关键字?

JavaScript ".method"返回未定义