写代码时对:

IList IList11 =new List ();
List List11 =new List ();

有所疑惑,于是在网上搜索一下,很受启发,于是收藏下来,但对部分观点不敢苟同,用红色字体标明我的看法!

首先IList 泛型接口是 ICollection(在PetShop4.0视频教程中,讲到了这个 ICollection,说它多用于静态的List,动态的用List) 泛型接口的子代,并且是所有泛型列表的基接口。
它仅仅是所有泛型类型的接口,并没有太多方法可以方便实用,如果仅仅是作为集合数据的承载体,确实,IList可以胜任。
不过,更多的时候,我们要对集合数据进行处理,从中筛选数据或者排序。这个时候IList就爱莫能助了。
1、当你只想使用接口的方法时,ILis<>这种方式比较好.他不获取实现这个接口的类的其他方法和字段,有效的节省空间.(既然子类是继承父类的子类又有自己的属性和方法,那么子类NEW出来后这些都应该有而且必须有的,不论放在父类的变量里面还是自身类型的变量里面,不然的话向上转型后再向下转型数据就会丢失喽,太可怕了!)
2、IList <>是个接口,定义了一些操作方法这些方法要你自己去实现,List <>是泛型类,它已经实现了IList <>定义的那些方法
IList IList11 =new List ();
List List11 =new List ();
这两行代码,从操作上来看,实际上都是创建了一个List对象的实例,也就是说,他们的操作没有区别。
只是用于保存这个操作的返回值变量类型不一样而已。
那么,我们可以这么理解,这两行代码的目的不一样。
List List11 =new List ();
是想创建一个List,而且需要使用到List的功能,进行相关操作。
而IList IList11 =new List ();
只是想创建一个基于接口IList的对象的实例,只是这个接口是由List实现的。所以它只是希望使用到IList接口规定的功能而已。

转载于:https://www.cnblogs.com/bsijl/archive/2013/03/18/2965754.html

IListT和ListT区别相关推荐

  1. C#中IListT与ListT的区别感想

    写代码时对: IList IList11 =new List (); List List11 =new List (); 有所疑惑,于是在网上搜索一下,很受启发,于是收藏下来,但对部分观点不敢苟同,用 ...

  2. ilistT 与listT 之间的相互转换

    ilist<T> 与list<T> 之间的相互转换 1>  将list<T>转化为ilist<T> 代码 #region 转化list为ilist ...

  3. 【转】ListT和ILIstT的区别

    using System; using System.Collections.Generic; using System.Linq; using System.Text;namespace List ...

  4. [C#]泛型与非泛型集合类的区别及使用例程,包括ArrayList,Hashtable,ListT,DictionaryTkey,Tvalue,SortedListTkey,Tvalue,...

    今天有空正好把泛型和非泛型集合类写了一个比较,并做了个的例程,可以比较清楚的理解它们概念和使用方法. 泛型与非泛型集合类在C#程序中是非常重要的一个基础概念,这里列一个表来进行对比: 非泛型集合类 泛 ...

  5. ListT中,Remove和RemoveAt区别

    Remove删除的是匹配的第一项.比如你的list里面有2个相同的项.那么就删除第一个.后面的不删除,找不到元素和删除失败都返回false RemoveAt是删除索引下的项 转载于:https://w ...

  6. Entity Framework中使用IEnumerableT、IQueryableT及IListT的区别

    1. IEnumerable<T> IEnumerable<T> :对于在内存中集合上运行的方法,返回的可枚举对象将捕获传递到方法的参数.在枚举该对象时,将使用查询运算符的逻辑 ...

  7. RPC 笔记(01)— RPC概念、调用流程、RPC 与 Restful API 区别

    1. 基本概念 PRC 远程过程调用 Remote Procedure Call,其就是一个节点请求另外一个节点提供的服务.当两个物理分离的子系统需要建立逻辑上的关联时,RPC 是牵线搭桥的常见技术手 ...

  8. C++ 笔记(28)— C++ 中 NULL和 nullptr 的区别

    最近看公司代码的时候发现在判断指针是否为空的时候,有的时候用的是 NULL, 有的时候用的是 nullptr 感觉很奇怪,好奇心驱使我查了下两者的区别,发现还是有很多细节需要学习的. 1. NULL ...

  9. gcc 和 g++ 的联系和区别,使用 gcc 编译 c++

    GCC 编译器已经为我们提供了调用它的接口,对于 C 语言或者 C++ 程序,可以通过执行 gcc 或者 g++ 指令来调用 GCC 编译器. 实际使用中我们更习惯使用 gcc 指令编译 C 语言程序 ...

最新文章

  1. 60分钟入门深度学习工具PyTorch
  2. 云服务器怎么添加虚拟内存,云服务器怎么添加虚拟内存
  3. hdu 1053 Entropy (哈夫曼树)
  4. threadpoolexecutor底层实现原理
  5. 不做会死!互联网时代的企业必定都要实现中台
  6. 11个不常被提及的JavaScript小技巧
  7. 怎样通过java用web3j查询以太坊交易信息?
  8. 控制系统--线性定常数系统的传递函数
  9. Python面试题:a='1234567890abc' 半金字塔输出
  10. java 手机智能拨号_智能拨号 CeleDial v1.8
  11. WPFLoading遮层罩
  12. 如何验证office是否已永久激活。
  13. 计算机音乐简单教学反思,《音乐小屋》教学反思
  14. 计算机硬盘 打开很慢,电脑硬盘运行速度慢如何解决 电脑硬盘运行速度慢解决方法【介绍】...
  15. PowerDesigner和PDMan数据库表设计工具的简单使用
  16. python 截取视频片段
  17. 《程序员练习生》第1期 做程序员需要天赋吗?
  18. 计算机科技协会知识竞赛策划书,科协活动策划书
  19. lamport面包店算法详细讲解及代码实现
  20. 什么是工业互联网?它从哪里来,要到哪里去?

热门文章

  1. NEO智能合约反编译工具
  2. 如何成为SEO专家(10步指南)
  3. redis发布与订阅消息
  4. Linux动态频率调节系统CPUFreq之一:概述【转】-- 非常好的博客
  5. 测试角度的并发和幂等问题总结
  6. MySQL/MariaDB基础及简单SQL语句
  7. 关于Webpack详述系列文章 (第四篇)
  8. JAVA中的集合与排序
  9. 线段树/树状数组问题 | 问题集合
  10. 前端文章精选- 收藏集 - 掘金