我有两个接口;ISet
和ISet<T>
两者都实现了 Add、Remove 和 Clear,但参数类型不同;对象和 T。
现在我有两个选择。要么让ISet<T>
继承自ISet
,要么让它们彼此隔离。
ISet<T>
继承 from的一大好处ISet
当然是我总是可以ISet<T>
在任何需要的地方使用ISet
. 但是这样做我还必须为具有 T 参数的成员添加“新”修饰符。我不太喜欢“新”修饰符,但也许在这种情况下这是更好的选择?
感觉很奇怪有 aISet<T>
也不是 a ISet
。这是合乎逻辑的假设。我真的不能说为什么我不喜欢“新”修饰符。就像使用“goto”关键字一样。我只是尽量不使用它。
你觉得我应该去这里做什么?继承与否?
在 .NET 中,我们拥有ICollection<T>
并且ICollection
不继承。也不做IList<T>
和IList
。但IEnumerable<T>
继承自IEnumerable
.
我知道已经存在的 ISet 接口(这只是一个例子)