常用接口的解析(链接)

1.IEnumerable深入解析
2.IEnumerable、IEnumerator接口解析
3.IComparable、IComparable接口解析

学习第一步,先上菜:

 #region 程序集 mscorlib.dll, v4.0.30319
// C:\Program Files\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.0\Profile\Client\mscorlib.dll
#endregion using System;
using System.Collections;
using System.Reflection;
using System.Runtime.CompilerServices; namespace System.Collections.Generic
{
// 摘要:
// 表示可按照索引单独访问的一组对象。
//
// 类型参数:
// T:
// 列表中元素的类型。
[TypeDependency("System.SZArrayHelper")]
public interface IList<T> : ICollection<T>, IEnumerable<T>, IEnumerable
{
// 摘要:
// 获取或设置指定索引处的元素。
//
// 参数:
// index:
// 要获得或设置的元素从零开始的索引。
//
// 返回结果:
// 指定索引处的元素。
//
// 异常:
// System.ArgumentOutOfRangeException:
// index 不是 System.Collections.Generic.IList<T> 中的有效索引。
//
// System.NotSupportedException:
// 设置该属性,而且 System.Collections.Generic.IList<T> 为只读。
T this[int index] { get; set; } // 摘要:
// 确定 System.Collections.Generic.IList<T> 中特定项的索引。
//
// 参数:
// item:
// 要在 System.Collections.Generic.IList<T> 中定位的对象。
//
// 返回结果:
// 如果在列表中找到,则为 item 的索引;否则为 -1。
int IndexOf(T item);
//
// 摘要:
// 将一个项插入指定索引处的 System.Collections.Generic.IList<T>。
//
// 参数:
// index:
// 从零开始的索引,应在该位置插入 item。
//
// item:
// 要插入到 System.Collections.Generic.IList<T> 中的对象。
//
// 异常:
// System.ArgumentOutOfRangeException:
// index 不是 System.Collections.Generic.IList<T> 中的有效索引。
//
// System.NotSupportedException:
// System.Collections.Generic.IList<T> 为只读。
void Insert(int index, T item);
//
// 摘要:
// 移除指定索引处的 System.Collections.Generic.IList<T> 项。
//
// 参数:
// index:
// 从零开始的索引(属于要移除的项)。
//
// 异常:
// System.ArgumentOutOfRangeException:
// index 不是 System.Collections.Generic.IList<T> 中的有效索引。
//
// System.NotSupportedException:
// System.Collections.Generic.IList<T> 为只读。
void RemoveAt(int index);
}
}

List的内容太多了

 public class List<T> : IList<T>, ICollection<T>, IEnumerable<T>, IList, ICollection, IEnumerable

从上面内容就可以看到,List继承了三个泛型接口,还继承了三个常规的接口。

说白了,就是List是类,继承IList<T>泛型版本和IList非泛型版本接口。List是一个集合类。

IList<T>是接口,说明这个对象要去实现接口里定义的方法。

IList<T> 服务泛型集合(List<T>),IList服务非泛型集合(Array)

以上只是个人学习的理解,后续会进行跟进,大家有什么想法可以畅所欲言。

常用接口简析3---IList和List的解析的更多相关文章

  1. 常用接口简析1---IEnumerable、IEnumerator简析

    常用接口的解析(链接) 1.IEnumerable深入解析 2.IComparable.IComparable接口解析 3.IList.IList接口解析      引言: IEnumerable和I ...

  2. 常用接口简析2---IComparable和IComparer接口的简析

    常用接口的解析(链接) 1.IEnumerable深入解析 2.IEnumerable.IEnumerator接口解析 3.IList.IList接口解析 默认情况下,对象的Equals(object ...

  3. Spring常用注解简析

    1. Autowired 自动装配,其作用是为了消除代码Java代码里面的getter/setter与bean属性中的property.当然,getter看个人需求,如果私有属性需要对外提供的话,应当 ...

  4. Linux之常用命令简析

    ls cd mkdir rmdir touch ln cp rm mv 1.ls   显示当前目录下的文件及文件夹(不显示隐藏的) -l   显示详细信息 --all  显示隐藏的文件及文件夹(就是显 ...

  5. Java Android 注解(Annotation) 及几个常用开源项目注解原理简析

    不少开源库(ButterKnife.Retrofit.ActiveAndroid等等)都用到了注解的方式来简化代码提高开发效率. 本文简单介绍下 Annotation 示例.概念及作用.分类.自定义. ...

  6. Java Annotation 及几个常用开源项目注解原理简析

    PDF 版: Java Annotation.pdf, PPT 版:Java Annotation.pptx, Keynote 版:Java Annotation.key 一.Annotation 示 ...

  7. Android 11(R) Power HAL AIDL简析 -- 基本接口

    Android 11(R) Power HAL AIDL将分三篇文章来介绍: Android 11(R) Power HAL AIDL简析 -- 基本接口 Android 11(R) Power HA ...

  8. SpringMVC源码情操陶冶-DispatcherServlet简析(二)

    承接前文SpringMVC源码情操陶冶-DispatcherServlet类简析(一),主要讲述初始化的操作,本文将简单介绍springmvc如何处理请求 DispatcherServlet#doDi ...

  9. SpringMVC源码情操陶冶-HandlerAdapter适配器简析

    springmvc中对业务的具体处理是通过HandlerAdapter适配器操作的 HandlerAdapter接口方法 列表如下 /** * Given a handler instance, re ...

随机推荐

  1. python虚拟环境的安装配置

    安装 使用pip安装     pip install virtualenv 因为已经安装过了,所以显示这样 在这里我想在这里推荐大家以后再安装类库时可以用豆瓣源来安装,速度很快,因为在国内访问 官方p ...

  2. MTV模型

    django的MTV分别代表: model(模型):负责业务对象与数据库的对象(orm) template(模板):负责把页面展示给用户 view(视图):负责业务逻辑,并在适当的时候调用model和 ...

  3. RAID 构建

    RAID的创建 第一步:先查看我们系统的磁盘情况 [root@station40 ~]# lsblk NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT sda    ...

  4. 【转】scatterlist && DMA

    原文:scatterlist && DMA DMA是一种无须CPU的参与就可以让外设与系统内存之间进行双向数据传输的硬件机制.使用DMA可以是系统CPU从实际的IO数据传输过程中摆脱出 ...

  5. java将map拼接成“参数=值&参数=值”

    Java将Map拼接成"参数=值&参数=值" 把一个map的键值对拼接成"参数=值&参数=值"即"username=angusbao& ...

  6. vux 组件打造手机端项目

    其实,我用vux组件的过程是这样的,哇!太方便了!!功能好全!!太简单了!!然后,就各种"跳坑".以下排坑环节. 1.安装vux:cnpm i -S vux;   比较顺利吧. 2 ...

  7. asp.net在类库中使用EF 6.0时的相关配置

    前提:之前使用EF的配置都是直接使用NuGet安装在项目中,然后直接修改web.config中的connectionString,然后创建相关dbcontext直接使用就可以了.此次为直接将EF安装在 ...

  8. Linux系统安装_Centos6.9

    第1章 虚拟机安装  1.1 镜像下载 1.1.1 新版本下载 http://mirrors.aliyun.com  #阿里云官方镜像站点 1.1.2 旧版本下载 http://vault.cento ...

  9. 记录下Webapi签名机制

    首先,写这篇文章的原因是因为最近某一个项目中的接口被人为调用了,导致了数据库数据被串改.虽然是内部人无意点的,但还是引起了我的担忧,所有整理了下关于Webapi的相关签名机制. 一.我们在开发接口时, ...

  10. 利用echarts highcharts 实现自定义地图 关系图效果 侧边3D柱形图饼图散点图

    github 地址:  https://https://github.com/Gengshaoxuan/medataMap github 地址:  https://https://github.com ...