我有一些不同类型的对象,每个对象由不同的管理员管理,每个对象应该知道'它的经理。对象管理器是通用的,因为对象的管理方式是相同的。 所有对象都继承自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>'
我该如何解决这个问题?