IList<T>和List<T>

IList<T>是个泛型接口,定义了一些操作方法,这些方法要你自己去实现。

List<T>是个泛型类,已经实现了IList<T>定义的那些方法。

List比IList拥有更多的方法,如果仅用来做数据集合,用IList就行,如果还需要更多的对集合进行操作,用List。

IList泛型接口是ICollection泛型接口的子代,并且是所有泛型列表的基接口。它仅仅是所有泛型类型的接口,并没有太多方法可以方便实用,如果仅仅是作为集合数据的承载体,确实可以胜任。当需要对集合数据进行处理,从中筛选数据或者排序,就需要用到List<T>了。

IList<Class1> IList11 = new List <Class1>();

创建一个基于接口IList<Class1>的对象的实例,只是这个接口是由List<T>实现的,所以它只是希望使用到IList<T>接口规定的功能而已。

List<Class1> List11 = new List <Class1>();

创建一个List<Class1>,而且需要使用到List<T>的功能,进行相关操作。

接口实现松耦合,有利于系统的维护与重构,优化系统流程。

鼓励使用接口,这样可以实现功能和具体实现的分离。

原文地址:https://www.cnblogs.com/niuniu1985/p/1636141.html