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的区别的主要内容,如果未能解决你的问题,请参考以下文章
IQueryable、ICollection、IList 和 IDictionary 接口之间的区别