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>的功能,进行相关操作。
接口实现松耦合,有利于系统的维护与重构,优化系统流程。
鼓励使用接口,这样可以实现功能和具体实现的分离。