多级C#.NET接口实现

时间:2018-05-01 13:31:31

标签: c# .net generics inheritance interface

我在使用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>

非常感谢任何理解这一点的帮助。谢谢!

1 个答案:

答案 0 :(得分:2)

我假设你有来自MSDN或其他文档源的接口声明。虽然ISet<T>不必明确实施IEnumberable<T>IEnumberable,但正如您在reference implementation中看到的那样......

public interface ISet<T> : ICollection<T> 

...文档仍然包含完整列表,以方便开发人员,因此即使只通过继承,他们也知道ISet<T>实现了哪些接口。通过一个可能很长的继承层次结构可能不会增强这种文档的好处。