我有以下课程:
public class Item
{
}
public class ItemCollection<TItem> : ICollection<TItem> where TItem : Item, new()
{
}
我有两个派生类:
public class Feature : Item
{
}
public class Features : ItemCollection<Feature>
{
}
我有一个管理器类来管理这些集合:
public class ItemCollectionManager<TCollection> where TCollection : ItemCollection<Item>, new()
{
}
我尝试使用这个类:
public class FeatureManager : ItemCollectionManager<Features>
{
}
但这会导致:
“该类型Features
必须可转换为ItemCollection<Item>
才能在泛型类中用作 TCollection ItemCollectionManager<TCollection>
”。
如前所述,
Features
是一个ItemCollection<Feature>
和
Feature
是一个Item
。
我不相信接口是完成这项任务的理想解决方案,但如果提供理由,我愿意改变。
如果有人可以就我做错了什么提出建议,将不胜感激。
谢谢你。