常见问题:

Ilist <> 本身只是一个泛型接口, 既然是接口当然不能实例化,只能用如下方法
IList <Class1> IList11 =new List <Class1>();
但是为什么要这么用呢,为什么不直接用List:
List <Class1> List11 =new List <Class1>();

第一种用法有什么好处。

总结归纳一下:

Ilist <> 是在 .net2.0里面才支持的

好处嘛..比如说human和tiger都有行走的功能,你可以把这些归类到interface中,当你有一个动物的类包括有这两种动物时,你想让他们行走你只需要调一个同样的方法而不管对方是什么类型,具体的行走嘛,人有两个只脚,但有4肢,动物有4条腿,这就是到具体的动物类来实现了,但是他们行走时都是4肢摆动,而且都向前迈出一定的距离(当然是向前走时),所以我认为这些可以归类为行为抽象,具体的一步能迈出多远这依赖于每个具体实现的身高/体长.

使用IList <Class1> IList11 =new List <Class1>();
方便后期的修改,当你不在使用List 要使用其他类型的时候
只需要修改这一处地方就可以了
不用修改过多的 地方

IList <>是个接口,定义了一些操作方法 这些方法要你自己去实现

List <>是个类型  已经实现了IList <>定义的那些方法

List <Class1> List11 =new List <Class1>();
是想创建一个List <Class1>,而且需要使用到List <T>的功能,进行相关操作。

IList <Class1> IList11 =new List <Class1>();
只是想创建一个基于接口IList <Class1>的对象的实例,只是这个接口是由List <T>实现的。所以它只是希望使用到IList <T>接口规定的功能而已。

接口实现松耦合...有利于系统的维护与重构...优化系统流程...

鼓励使用接口
这样可以实现功能和具体实现的分离
实现接口分离的原则
不是看实际需要用的!

转载于:https://www.cnblogs.com/lihuimingcn/archive/2009/10/27/1590871.html

Ilist 和list的区别归纳总结相关推荐

  1. oracle语法和sql的区别吗,ORACLE和SQL语法区别归纳

    ORACLE和SQL语法区别归纳 数据类型比较 类型名称 Oracle SQLServer 比较 字符数据类型 CHAR CHAR 都是固定长度字符资料但oracle里面最大度为2kb,SQLServ ...

  2. oracle stdevp函数,ORACLE和SQL语法区别归纳整理.doc

    ORACLE和SQL语法区别归纳整理 一.数据类型比较⑴.字符数据类型?? CHAR?? CHAR?? 都是固定长度字符资料但oracle里面最大度为2kb,SQLServer里面最大长度为8kb变长 ...

  3. Ilist与List的区别

    首先要了解一点的是关于接口的基础知识: 接口不能直接实例化 但是接口派生出来的抽象类可以实例化 所有派生出来的抽象类都可以强制转换成接口的实例 第三条我解释一下:比如,IList <Class& ...

  4. 结构化数据和非结构化数据、半结构化数据的区别-归纳总结整理

    ​今天来讨论一下什么是结构化数据? 什么是非结构化数据? 半结构化数据?以及三者之间的区别 计算机信息化系统中的数据分为结构化数据和非结构化数据.半结构化数据. 结构化数据 结构化数据,是指由二维表结 ...

  5. OnOK()、OnCancel()、OnClose()、OnDestroy()之间的区别归纳

    首先,OnOK()和OnCancel()是CDialog基类的成员函数,而OnClose()和OnDestroy()是CWnd基类的成员函数,即WM消息响应函数.从应用程序结构的角度,拿对话框来说,红 ...

  6. List和IList的区别

    最近一直碰到这个.感觉有必要记下来它们的区别和主要用途. 本文属转载,原文博客:http://www.cnblogs.com/wang7/archive/2012/05/16/2504634.html ...

  7. Http之Get/Post请求区别

    今天在网上看了一些关于http 协议中get 和Post的文章.在此做一个总结,当是做一个笔记吧. 一.什么是HTTP-GET和HTTP-POST HTTP-GET和HTTP-POST是使用HTTP的 ...

  8. python post与get的区别_python中get和post有什么区别

    更多编程教程请到:菜鸟教程 https://www.piaodoo.com/ 友情链接: 高州阳光论坛https://www.hnthzk.com/ 人人影视http://www.sfkyty.com ...

  9. Java刷题知识点之进程和线程的区别

    https://www.nowcoder.com/ta/review-java/review?tpId=31&tqId=21079&query=&asc=true&or ...

  10. GET POST 区别详解

    1 .Get是用来从服务器上获得数据,而Post是用来向服务器上传递数据. 2 .Get将表单中数据的按照variable=value的形式,添加到action所指向的URL后面,并且两者使用&quo ...

最新文章

  1. jvm系列(四):jvm调优-命令篇
  2. qq浏览器怎么导入其他浏览器收藏夹
  3. 关于vue3.0中的this.$router.replace({ path: '/'})刷新无效果问题
  4. 三菱数据移位指令_三菱plc移位指令用法详解
  5. 中继链路,以太网通道,DHCP配置
  6. 人人都可做 AI 开发者,云知声 AI 开放平台重磅上线
  7. 最具潜力的编程语言GO有新书啦!
  8. PO、VO、POJO、DTO、DAO、Service包等常见包的理解
  9. 斑马网络招聘汽车安全软件工程师
  10. win7共享wifi之bat文件
  11. 2020ccf大学生计算机系统,云南大学学生获得2019CCF大学生计算机系统与程序设计竞赛西...
  12. 10000小时=1万小时
  13. 服务器如何几十台电脑一起装系统,多台电脑如何同时安装系统
  14. re:从零开始的Qt世界冒险生活
  15. 【解决】JSONDecodeError: Expecting property name enclosed in double quotes
  16. yocto,poky,qemu
  17. 职场5大潜规则不可不知
  18. HTTPS加密过程和TLS证书验证
  19. Wirecast Pro for Mac 9.0.0 网上直播软件 中文破解版下载
  20. 一.html任务以及技能树学习

热门文章

  1. 【Linux】常用命令之 awk 常用实例
  2. 初学者|一起来看看词性标注
  3. 深度学习10-tf.data-数据输入管道简介
  4. 节后荐书:Python、PyQt5、Kotlin(评论送书)
  5. 实时Web与WebSocket实践
  6. 致Android开发者:APP 瘦身经验总结
  7. 《Effective STL中文版》译序
  8. 读《JavaScript语言精粹(修订版)》心得
  9. 民营企业IT项目管理之路2
  10. 初始化游戏状态数据二