有趣的是,当我IList<T>在 Visual Studio 中查看 的定义时,它与 GitHub 上的源代码并不相同。
IList<T>
public interface IList<T> : ICollection<T>, IEnumerable<T>, IEnumerable
Run Code Online (Sandbox Code Playgroud)
ICollection<T>
public interface ICollection<T> : IEnumerable<T>, IEnumerable
Run Code Online (Sandbox Code Playgroud)
鉴于ICollection<T>已经包含IEnumerable<T>以及IEnumerable为什么IList<T>需要包含它们。不能简化如下吗?
public interface IList<T> : ICollection<T>
Run Code Online (Sandbox Code Playgroud)
我试图理解这个长接口链接背后的逻辑。
您可以查看下面的源代码以查看差异。