我在使用BindingList时发现自己正在深入研究System.Collections.Generic。我不了解以下接口实现:
public interface ICollection<T> : IEnumerable<T>, IEnumerable
public interface ISet<T> : ICollection<T>, IEnumerable<T>, IEnumerable
为什么
ISet<T>
实施
IEnumerable<T>, IEnumerable
当ICollection已经存在?以下是否可以接受?
public interface ICollection<T> : IEnumerable<T>, IEnumerable
public interface ISet<T> : ICollection<T>
非常感谢任何理解这一点的帮助。谢谢!
答案 0 :(得分:2)
我假设你有来自MSDN或其他文档源的接口声明。虽然ISet<T>
不必明确实施IEnumberable<T>
和IEnumberable
,但正如您在reference implementation中看到的那样......
public interface ISet<T> : ICollection<T>
...文档仍然包含完整列表,以方便开发人员,因此即使只通过继承,他们也知道ISet<T>
实现了哪些接口。通过一个可能很长的继承层次结构可能不会增强这种文档的好处。