C# 为什么从IList继承?

C# 为什么从IList继承?,c#,C#,嗨 我发现有人使用了iList接口固有的类。我不明白为什么这个人不在类中使用集合而不是继承。区别是什么?这是因为有人想要实现一种在官方类库中找不到的列表 在某些情况下,具体需求将迫使用户通过实现IList或任何其他IList、ICollection来实现特定类型的列表。。。为了让您自己的类与.NETAPI或第三方API兼容 嗯,归根结底,这就是界面的目标,不是吗合同 这是因为有人想要实现一种在官方类库中找不到的列表 在某些情况下,具体需求将迫使用户通过实现IList或任何其他IList、ICol


我发现有人使用了iList接口固有的类。我不明白为什么这个人不在类中使用集合而不是继承。区别是什么?

这是因为有人想要实现一种在官方类库中找不到的列表

在某些情况下,具体需求将迫使用户通过实现IList或任何其他IList、ICollection来实现特定类型的列表。。。为了让您自己的类与.NETAPI或第三方API兼容


嗯,归根结底,这就是界面的目标,不是吗合同

这是因为有人想要实现一种在官方类库中找不到的列表

在某些情况下,具体需求将迫使用户通过实现IList或任何其他IList、ICollection来实现特定类型的列表。。。为了让您自己的类与.NETAPI或第三方API兼容


嗯,归根结底,这就是界面的目标,不是吗合同

IList定义了一个契约。实施者可以自由地做任何他想做的事,尊重合同。接口不提供任何实现,因此实现者必须编写整个行为

继承现有集合是一个简单的过程。这意味着继承的类继承父类的行为、其属性等。然后继承的类只能添加或覆盖必要的更改。在大多数情况下,基类提供了一组随时可用的方法,这是收集的典型情况


在这两者之间没有通用的选择方法。但是,通常我们会覆盖基类,而不是实现接口。原因是基类包含所有管道,继承的类仅在CustomerCollection上添加一点逻辑或业务方法FindByName。有时不能,所以必须转到接口实现。

IList定义了一个契约。实施者可以自由地做任何他想做的事,尊重合同。接口不提供任何实现,因此实现者必须编写整个行为

继承现有集合是一个简单的过程。这意味着继承的类继承父类的行为、其属性等。然后继承的类只能添加或覆盖必要的更改。在大多数情况下,基类提供了一组随时可用的方法,这是收集的典型情况


在这两者之间没有通用的选择方法。但是,通常我们会覆盖基类,而不是实现接口。原因是基类包含所有管道,继承的类仅在CustomerCollection上添加一点逻辑或业务方法FindByName。有时不能,所以必须转到接口实现。

旁注:IList是一个接口,所以实际上类不是从它继承的,而是实现的it@digEmAll我明白了,但是在课堂上用它代替集合有什么好处呢?我的评论是正确的;对于这个问题,我想您已经得到了答案:旁注:IList是一个接口,所以实际上类不是从它继承的,而是实现的it@digEmAll我明白了,但是在课堂上用它代替集合有什么好处呢?我的评论是正确的;对于这个问题,我想你已经得到了答案: