IListT和ListT区别
写代码时对:
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区别相关推荐
- C#中IListT与ListT的区别感想
写代码时对: IList IList11 =new List (); List List11 =new List (); 有所疑惑,于是在网上搜索一下,很受启发,于是收藏下来,但对部分观点不敢苟同,用 ...
- ilistT 与listT 之间的相互转换
ilist<T> 与list<T> 之间的相互转换 1> 将list<T>转化为ilist<T> 代码 #region 转化list为ilist ...
- 【转】ListT和ILIstT的区别
using System; using System.Collections.Generic; using System.Linq; using System.Text;namespace List ...
- [C#]泛型与非泛型集合类的区别及使用例程,包括ArrayList,Hashtable,ListT,DictionaryTkey,Tvalue,SortedListTkey,Tvalue,...
今天有空正好把泛型和非泛型集合类写了一个比较,并做了个的例程,可以比较清楚的理解它们概念和使用方法. 泛型与非泛型集合类在C#程序中是非常重要的一个基础概念,这里列一个表来进行对比: 非泛型集合类 泛 ...
- ListT中,Remove和RemoveAt区别
Remove删除的是匹配的第一项.比如你的list里面有2个相同的项.那么就删除第一个.后面的不删除,找不到元素和删除失败都返回false RemoveAt是删除索引下的项 转载于:https://w ...
- Entity Framework中使用IEnumerableT、IQueryableT及IListT的区别
1. IEnumerable<T> IEnumerable<T> :对于在内存中集合上运行的方法,返回的可枚举对象将捕获传递到方法的参数.在枚举该对象时,将使用查询运算符的逻辑 ...
- RPC 笔记(01)— RPC概念、调用流程、RPC 与 Restful API 区别
1. 基本概念 PRC 远程过程调用 Remote Procedure Call,其就是一个节点请求另外一个节点提供的服务.当两个物理分离的子系统需要建立逻辑上的关联时,RPC 是牵线搭桥的常见技术手 ...
- C++ 笔记(28)— C++ 中 NULL和 nullptr 的区别
最近看公司代码的时候发现在判断指针是否为空的时候,有的时候用的是 NULL, 有的时候用的是 nullptr 感觉很奇怪,好奇心驱使我查了下两者的区别,发现还是有很多细节需要学习的. 1. NULL ...
- gcc 和 g++ 的联系和区别,使用 gcc 编译 c++
GCC 编译器已经为我们提供了调用它的接口,对于 C 语言或者 C++ 程序,可以通过执行 gcc 或者 g++ 指令来调用 GCC 编译器. 实际使用中我们更习惯使用 gcc 指令编译 C 语言程序 ...
最新文章
- 60分钟入门深度学习工具PyTorch
- 云服务器怎么添加虚拟内存,云服务器怎么添加虚拟内存
- hdu 1053 Entropy (哈夫曼树)
- threadpoolexecutor底层实现原理
- 不做会死!互联网时代的企业必定都要实现中台
- 11个不常被提及的JavaScript小技巧
- 怎样通过java用web3j查询以太坊交易信息?
- 控制系统--线性定常数系统的传递函数
- Python面试题:a='1234567890abc' 半金字塔输出
- java 手机智能拨号_智能拨号 CeleDial v1.8
- WPFLoading遮层罩
- 如何验证office是否已永久激活。
- 计算机音乐简单教学反思,《音乐小屋》教学反思
- 计算机硬盘 打开很慢,电脑硬盘运行速度慢如何解决 电脑硬盘运行速度慢解决方法【介绍】...
- PowerDesigner和PDMan数据库表设计工具的简单使用
- python 截取视频片段
- 《程序员练习生》第1期 做程序员需要天赋吗?
- 计算机科技协会知识竞赛策划书,科协活动策划书
- lamport面包店算法详细讲解及代码实现
- 什么是工业互联网?它从哪里来,要到哪里去?