IList与List的区别

Posted 1936xinyang

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了IList与List的区别相关的知识,希望对你有一定的参考价值。

List是一个类(Class),IList是一个接口(Interface),不能被实例化,只能用 IList <T> myIList =new List <T>(); 

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

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

 使用场景:
IList:当你建立一个方法,希望可以接收不同类型的参数时,建议用接口,当然你得考虑内部的逻辑是不是可以通过接口解决,如果还要进行数据分析或者别的什么,就是接口满足不了的时候,还是老老实实的用会具体的参数。

List<T>:做方法返回值很合适,因为要对结果进行迭代、分析、查询等等,它都能满足你,还不用你转来转去,减少装箱拆箱。

鼓励使用接口 ,这样可以实现功能和具体实现的分离 (接口实现松耦合,有利于系统的维护与重构),实现接口分离的原则 ,不是看实际需要用的。


 




 



以上是关于IList与List的区别的主要内容,如果未能解决你的问题,请参考以下文章

list与arraylist 区别

IQueryable、ICollection、IList 和 IDictionary 接口之间的区别

java list和数组的区别

arraylist和list的区别是啥?

List<T>,ArrayList,IEnumerable的区别

IQueryable和IEnumerable,IList的区别