【发布时间】:2015-03-20 06:44:02
【问题描述】:
为什么 IList 是这样定义的?
public interface IList<T> : ICollection<T>, IEnumerable<T>, IEnumerable
public interface ICollection<T> : IEnumerable<T>, IEnumerable
public interface IEnumerable<T> : IEnumerable
难道就这样
public interface IList<T> : ICollection<T>
所以,为了测试我创建了这些接口,只是为了确定它是否有效!
public interface IOne
{
string One();
}
public interface ITwo : IOne
{
string Two();
}
public interface IThree : ITwo, IOne
{
string Three();
}
Resharper 虽然非常好,但抱怨“冗余接口”。
有什么想法为什么 Microsoft 继续执行此实施?
【问题讨论】:
-
你在哪里看到重复的? (可以这么说
IList<T>的来源是什么?) -
@JonSkeet:刚刚在
IList<T>上按下F12/Go to definition。它向我展示了来自assembly metadata的method signature。刚从那里看过。 -
顺便说一句,只对真正的代码使用反引号很有帮助。 (我已经编辑了你帖子中的多余部分)
-
@JonSkeet:谢谢乔恩。会更正
-
以防万一您想知道,我已经删除了我的答案,因为我认为它是不正确的 - 我怀疑代码真的 在它被编译了。我真的无法推测为什么……我猜是写界面的人的个人喜好。
标签: c# .net generic-list ilist generic-collections