【发布时间】:2013-10-15 09:39:01
【问题描述】:
我有两个基类:
class BaseCollection<T> where T : BaseCollectionItem
{
}
和
class BaseCollectionItem
{
}
这些是基类,后来按以下方式子类化:
class MyCollection : BaseCollection<MyItem>
{
}
class MyItem : BaseCollectionItem
{
}
我想存储对集合的引用,该集合在BaseCollectionItem 中保存一个项目。我该怎么做?
class BaseCollectionItem
{
private ??? ownerCollection;
}
【问题讨论】:
-
我对你的最后一句话感到困惑。你要吗???替换为 BaseCollection
? -
我不认为这是必需的。集合应该引用项目
-
@ItzWarty 我不能。当您将
BaseCollection和BaseCollectionItem子类化时,第一个不再被BaseCollectionItem特化。相反,它变成了BaseCollection<MyItem>。因此,不幸的是,您的解决方案将不起作用:( -
@RajeshSubramanian 在我的具体情况下,我实际上需要这些项目来引用拥有它们的集合。否则我不会问这个问题。
-
为什么不将 MyCollection 的类定义更改为:class MyCollection : BaseCollection
?
标签: c# generics inheritance collections