说说C#中IList与List区别
2013-10-04 00:40
281 查看
我知道IList是一个接口,而List可以实例化IList。请问,我不可以不定义接口IList么?或者在IDAL(接口中)定义List吗?必须是Ilist么?? 请大家谈谈他们之间的区别和作用?
(摘自网络)
首先IList 泛型接口是 ICollection 泛型接口的子代,并且是所有泛型列表的基接口。 它仅仅是所有泛型类型的接口,并没有太多方法可以方便实用,如果仅仅是作为集合数据的承载体,确实,IList<T>可以胜任。 不过,更多的时候,我们要对集合数据进行处理,从中筛选数据或者排序。这个时候IList<T>就爱莫能助了。 1、当你只想使用接口的方法时,ILis<>这种方式比较好.他不获取实现这个接口的类的其他方法和字段,有效的节省空间. 2、IList <>是个接口,定义了一些操作方法这些方法要你自己去实现 List <>是泛型类,它已经实现了IList <>定义的那些方法 IList <Class1> IList11 =new List <Class1>(); List <Class1> List11 =new List <Class1>(); 这两行代码,从操作上来看,实际上都是创建了一个List<Class1>对象的实例,也就是说,他们的操作没有区别。 只是用于保存这个操作的返回值变量类型不一样而已。 那么,我们可以这么理解,这两行代码的目的不一样。 List <Class1> List11 =new List <Class1>(); 是想创建一个List<Class1>,而且需要使用到List<T>的功能,进行相关操作。 而 IList <Class1> IList11 =new List <Class1>(); 只是想创建一个基于接口IList<Class1>的对象的实例,只是这个接口是由List<T>实现的。所以它只是希望使用到IList<T>接口规定的功能而已
相关文章推荐
- C# 让程序自动以管理员身份运行
- C# 文件操作(文件夹 及 文件) .
- C#垃圾回收和析构函数以及弱引用
- 流媒体开发 -- C#
- C# 视频监控系列(15):总结贴——可能用到的C# WinForm技术小结
- C# 视频监控系列(13):H264播放器——控制播放和截图
- C# 视频监控系列(12):H264播放器——播放录像文件
- C# 视频监控系列(11):H264播放器——封装API[HikPlayM4.dll]
- C# 视频监控系列(10):服务器端——验证、设置画面质量、字幕叠加、板卡序列号
- C# 视频监控系列(9):服务器端——数据捕获(抓图 + 录像)
- C# 视频监控系列(8):服务器端——预览和可被客户端连接
- C# 视频监控系列(7):服务器端——封装API(下) [DS40xxSDK.dll]
- C# 视频监控系列(6):服务器端——封装API(上) [HikServer.dll]
- C# 视频监控系列(5):客户端——给服务器端发送字符串和录像(数据捕获)
- C# 视频监控系列(4):客户端——音频接收和截图
- C# 视频监控系列(3):客户端——连接服务器并预览
- C#封装的海康DVR客户端SDK
- C# 视频监控系列(2):客户端——封装API
- C# 视频监控系列(1):准备
- C#泛型约束