【发布时间】:2017-04-09 19:54:02
【问题描述】:
我有 2 个通用类:ManagerBase 类和 ChildBase 类。 它们都是抽象的,旨在具体化。 ManagerBase 有一个 ChildBase 列表,这就是为什么我想让它成为通用的,所以 CatalogManager : ManagerBase 会有一个目录列表。此外,每个目录都将引用其管理器 - CatalogManager。
public class ManagerBase<T1> : ChildBase<???>
{
public ManagerBase()
{
ChildObjects = new List<T1>();
}
public List<T1> ChildObjects { get; set; }
}
public class ChildBase<T1> : ManagerBase<???>
{
public ChildBase(T1 parentMgr)
{
ParentMgr = parentMgr;
ParentMgr.ChildObjects.Add(this);
}
public T1 ParentMgr { get; set; }
}
如何解决这个对象模型?
谢谢。
【问题讨论】:
-
public class ManagerBase<TManager, TChild> where TManager : ManagerBase<TManager, TChild> where TChild : ChildBase<TManager, TChild>,public class ChildBase<TManager, TChild> where TManager : ManagerBase<TManager, TChild> where TChild : ChildBase<TManager, TChild>,class CatalogManager : ManagerBase<CatalogManager, Catalog>,class Catalog : ChildBase<CatalogManager, Catalog>.
标签: c# generics inheritance circular-dependency