我有以下類層次結構。類型約束
class Header { IEnumerable<Item> Item { get; set; } .... }
class HeaderA : Header { .... } // Item should have the type of IEnumerable<ItemA>
class HeaderB : Header { .... } // Item should have the type of IEnumerable<ItemB>
class Item { .... }
class ItemA : Item { .... }
class ItemB : Item { .... }
是否有可能有編譯時檢查對Item
的類型,以確保它的IEnumerable<ItemA>
,IEnumerable<ItemB>
分別爲ItemA
和ItemB
?有沒有更好的設計?
你還可以考慮添加一個約束'where TItem:Item'? –
這將是一個好主意,謝謝! – carlosfigueira
現在完美! +1! –