【原】浅析IList与List的区别

 

List和IList是.net开发中经常遇到的两种类型,用法上经常会让初学者摸不到头脑,下面简要的分析一下这两种类型的区别

 

1、IList<T>是接口,继承自ICollection<T>和IEnumerable<T>,是所有泛型列表的基接口,其中规定了一些方法声明。

     List继承了IList并实现了IList规定的那些方法,同时也实现了许多自定义的新方法。

 

2、既然IList是接口,就不能用new关键字去直接实例化,但是可以用多态的方式去实例化,也就是用其子类(List)去实例化。

     IList<string> Ilist1=new List<string>()    (简记作①)

     你可能会有疑问,这样作与 List<string> list1=new List<string>()   (简记作②)     有什么区别呢?

     当然是有区别的:

      首先,①创建了一个list,但是这个list只能用到IList接口中规定那些方法,因为这些方法在List类型中实现了的,所以可以用。

               ②也创建了一个list,这个list可以用List类型中实现的所有方法(当然包括IList规定的那些)

      其次,推荐使用哪个呢? 答:①

               因为在面向对象的思想里,推荐使用接口,可以实现松耦合,有很好的扩展性,功能与具体实现很好的分离开,有利于系统的维护与重构。

 

 

作者:Tony zhao 

本文出处:http://www.cnblogs.com/ytaozhao    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

 

posted @ 2012-08-17 10:12  Tony Zhao  阅读(932)  评论(0编辑  收藏  举报