背景:私はタイプDirectoryCollection<T>
のジェネリックコレクションを持っており、TはタイプIEntity
でなければならないと指定しました。私は具体的なタイプEntity
を持っていて、IEntity
と、2つの派生タイプ、Employee
とStation
を実装しています。 .NET 4.0では継承されたオブジェクトのコレクションをメソッドに渡す方法基底オブジェクトのICollectionを受け入れる
私は、しかし、それはそれはタイプICollection<Entity>
のパラメータを持つメソッドのために動作しないようです、DirectoryCollection<Employee>
としてIEnumerable<Entity>
パラメータでメソッドを呼び出すために(from here)可能であることを知っています。この方法では、私はRemove
とAdd
のコレクションのメソッドを使用しているので、IEnumerable
をメソッドのシグネチャに入れることを躊躇しています。
この問題を解決するベストプラクティスは何ですか?
'DirectoryCollection'は' ICollection'を実装していますか?私は推測していない? –
@ChrisShainは 'ICollection'ではなく、' ICollectionここでT:IEntity' –
@MichaelKingsmillと 'ICollectionここでT:IEntity'とすることはできません。おそらくTは入出力型です。 ? –