1

背景:我有一个通用的 type 集合,DirectoryCollection<T>并指定 T 必须是 type IEntity。我有一个具体类型Entity,它实现IEntity了两个派生类型,Employee并且Station.

在 .NET 4.0 中,我知道可以(从这里)调用带有IEnumerable<Entity>参数的方法DirectoryCollection<Employee>,但是,对于带有类型参数的方法似乎不起作用ICollection<Entity>。在所述方法中,我使用了集合的Removeand方法,因此犹豫是否要放入方法签名中。AddIEnumerable

解决这个问题的最佳实践是什么?

4

1 回答 1

0

你需要ICollectionDirectoryCollection课堂上实现。由于@SamHolder 在评论中提到的协方差限制,您可能需要明确实现它。请参阅本教程以明确实现接口。

此外,在接受ICollection<Entity>作为参数的方法中,您可能需要将签名更改为接受ICollection<IEntity>

于 2012-04-09T14:57:11.590 回答