【发布时间】:2016-07-04 19:26:24
【问题描述】:
让我描述一下逻辑,然后是类结构。有对象,所有对象都必须继承自 ConfigurationObjectBase。每个对象都必须归 Manager 所有,并且所有 Manager 都必须从 ConfigurationObjectManagerBase 派生。当创建一个新的对象实例时,其中一个构造函数必须接受 Manager 的实例,并且该 Manager 的实例必须将该对象实例添加到其名为 ChildObjects 的属性中。以下是班级样本。您能否根据上述业务规则帮助纠正以下代码?谢谢。
public class ConfigurationObjectBase<ObjectType>
{
public ConfigurationObjectBase(ConfigurationObjectManagerBase<ObjectType> ownerManager)
{
ownerManager.ChildObjects.Add(this);
}
}
public class ConfigurationObjectManagerBase<ObjectType>
{
public ConfigurationObjectManagerBase()
{
ChildObjects = new List<ObjectType>();
}
public List<ObjectType> ChildObjects { get; set; }
}
public class Catalog : ConfigurationObjectBase<Catalog>
{
public Catalog(CatalogManager ownerManager) : base(???)
{
}
}
public class CatalogManager : ConfigurationObjectManagerBase<CatalogManager>
{
public CatalogManager() : base()
{
}
}
【问题讨论】:
标签: c# generics inheritance