在C#类构造函数中传递通用对象

时间:2019-06-25 13:58:13

标签: c# generics inheritance

我正在创建从基类继承的类,但是在将通用参数传递给基类的构造方法时遇到问题。是否可以在不使基类通用的情况下做到这一点?

下面的示例不起作用,因为Options<FileDataSource> cannot be converted to Options<DataSource>

interface DataSource
    {

    }

    interface FileDataSource : DataSource
    {

    }

    class BaseOptions : Options<DataSource>
    {

    }

    class Options<T> where T : DataSource
    {

    }

    class BaseClass
    {
        public BaseClass(Options<DataSource> baseOptions)
        {

        }
    }

    class FileClass : BaseClass
    {
        public FileClass(Options<FileDataSource> baseOptions) : base(baseOptions)
        {
        }
    }

0 个答案:

没有答案