我有以下类别: 为什么我的派生类不能传递给基类?
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
必须是为了在泛型类ItemCollectionManager<TCollection>
使用它作为TCollection转换为ItemCollection<Item>
”。
而且如前面提到的,
Features
是-一个ItemCollection<Feature>
和
Feature
是-一个Item
。
我不认为接口是这项任务的理想解决方案,但如果提供了原因,我愿意改变。
如果有人可以建议我在做什么错误,将非常感激。
谢谢。
+1为协方差和链接。我不知道你可以用in/out来装饰类型参数。 –
@ MalcolmO'Hare不客气 - 是的,它可能在某些情况下很有用 – NSGaga