背景:我有一個DirectoryCollection<T>
類型的泛型集合,並且指定T必須是IEntity
類型。我有一個具體的類型Entity
,它實現了IEntity
和兩個派生類型,Employee
和Station
。將繼承對象的集合傳遞給方法接受基類對象的ICollection
在.NET 4.0中,我知道這是可能的(from here)調用方法與IEnumerable<Entity>
參數爲DirectoryCollection<Employee>
,但是,它似乎並不與ICollection<Entity>
類型的參數的方法工作。在所述方法中,我使用集合的方法Remove
和Add
,因此,我們猶豫將IEnumerable
放入方法簽名中。
解決此問題的最佳做法是什麼?
'DirectoryCollection'是否實現'ICollection'?我猜不是? – 2012-04-09 14:35:11
@ChrisShain不是'ICollection',但它確實實施了'ICollection其中T:IEntity' –
2012-04-09 14:44:19
@MichaelKingsmill並且你不能讓它'ICollection其中T:IEntity',大概是T是一個輸入和輸出類型。 。? –
2012-04-09 14:48:03