错误CS0309:类型...必须可转换为...才能将其用作泛型类型或方法中的参数

时间:2016-06-27 12:52:55

标签: c#

我有一些不同类型的对象,每个对象由不同的管理员管理,每个对象应该知道'它的经理。对象管理器是通用的,因为对象的管理方式是相同的。 所有对象都继承自BaseObject。

这是一个简单的例子:

public class BaseObject<TManager> {
    public TManager manager = null;
}

public class GenericManager<T> where T : BaseObject<GenericManager<T>> {
    protected virtual T AddObject(T obj) {
        obj.manager = this;
    }
}

public class SimpleObject : BaseObject<SimpleObjectManager> {
}

public class SimpleObjectManager : GenericManager<SimpleObject> {
}

我在SimpleObjectManager的类定义中遇到以下错误:

  

错误CS0309:类型&#39; SimpleObject&#39;必须可转换为'BaseObject<GenericManager<T>>'才能将其用作参数&#39; T&#39;在通用类型或方法'GenericManager<T>'

我该如何解决这个问题?

0 个答案:

没有答案