我刚刚遇到了一个单元测试场景,我在CollectionAssert.AreEquivalent()
使用了两个ICollection(T)
实例。但是,CollectionAssert.AreEquivalent将两个ICollection对象作为参数,ICollection(T)
不实现ICollection
。这是为什么?我认为,由于ICollection(T)
是ICollection
的通用等价物,因此它应该实现ICollection
以实现与旧代码的互操作性;否则,如果ICollection(T)
正在执行与ICollection
根本不同的事情,则甚至不应将其称为ICollection(T)
。