我有以下類別: 爲什麼我的派生類不能傳遞給基類?
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