我有两个接口;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 接口(这只是一个例子)