常用接口简析3---IList和List的解析

常用接口的解析(链接)

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

学习第一步,先上菜:

 1 #region 程序集 mscorlib.dll, v4.0.30319
 2 // C:\Program Files\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.0\Profile\Client\mscorlib.dll
 3 #endregion
 4
 5 using System;
 6 using System.Collections;
 7 using System.Reflection;
 8 using System.Runtime.CompilerServices;
 9
10 namespace System.Collections.Generic
11 {
12     // 摘要:
13     //     表示可按照索引单独访问的一组对象。
14     //
15     // 类型参数:
16     //   T:
17     //     列表中元素的类型。
18     [TypeDependency("System.SZArrayHelper")]
19     public interface IList<T> : ICollection<T>, IEnumerable<T>, IEnumerable
20     {
21         // 摘要:
22         //     获取或设置指定索引处的元素。
23         //
24         // 参数:
25         //   index:
26         //     要获得或设置的元素从零开始的索引。
27         //
28         // 返回结果:
29         //     指定索引处的元素。
30         //
31         // 异常:
32         //   System.ArgumentOutOfRangeException:
33         //     index 不是 System.Collections.Generic.IList<T> 中的有效索引。
34         //
35         //   System.NotSupportedException:
36         //     设置该属性,而且 System.Collections.Generic.IList<T> 为只读。
37         T this[int index] { get; set; }
38
39         // 摘要:
40         //     确定 System.Collections.Generic.IList<T> 中特定项的索引。
41         //
42         // 参数:
43         //   item:
44         //     要在 System.Collections.Generic.IList<T> 中定位的对象。
45         //
46         // 返回结果:
47         //     如果在列表中找到,则为 item 的索引;否则为 -1。
48         int IndexOf(T item);
49         //
50         // 摘要:
51         //     将一个项插入指定索引处的 System.Collections.Generic.IList<T>。
52         //
53         // 参数:
54         //   index:
55         //     从零开始的索引,应在该位置插入 item。
56         //
57         //   item:
58         //     要插入到 System.Collections.Generic.IList<T> 中的对象。
59         //
60         // 异常:
61         //   System.ArgumentOutOfRangeException:
62         //     index 不是 System.Collections.Generic.IList<T> 中的有效索引。
63         //
64         //   System.NotSupportedException:
65         //     System.Collections.Generic.IList<T> 为只读。
66         void Insert(int index, T item);
67         //
68         // 摘要:
69         //     移除指定索引处的 System.Collections.Generic.IList<T> 项。
70         //
71         // 参数:
72         //   index:
73         //     从零开始的索引(属于要移除的项)。
74         //
75         // 异常:
76         //   System.ArgumentOutOfRangeException:
77         //     index 不是 System.Collections.Generic.IList<T> 中的有效索引。
78         //
79         //   System.NotSupportedException:
80         //     System.Collections.Generic.IList<T> 为只读。
81         void RemoveAt(int index);
82     }
83 }

List的内容太多了

1 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)

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

时间: 2024-12-26 03:41:54

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

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

PDF 版: Java Annotation.pdf, PPT 版:Java Annotation.pptx, Keynote 版:Java Annotation.key 一.Annotation 示例 Override Annotation Java 1 2 3 @Override public void onCreate(Bundle savedInstanceState); Retrofit Annotation Java 1 2 3 @GET("/users/{username}&quo

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

不少开源库(ButterKnife.Retrofit.ActiveAndroid等等)都用到了注解的方式来简化代码提高开发效率. 本文简单介绍下 Annotation 示例.概念及作用.分类.自定义.解析,并对几个 Android 开源库 Annotation 原理进行简析.PDF 版: Java Annotation.pdf, PPT 版:Java Annotation.pptx, Keynote 版:Java Annotation.key 完整版原文见:Java Android 注解(Ann

服务器租用---常用网络协议:TCP和UDP的区别简析

服务器租用---常用网络协议:TCP和UDP的区别简析及TCP与UDP区别 TCP---传输控制协议,提供的是面向连接.可靠的字节流服务.当客户和服务器彼此交换数据前,必须先在双方之间建立 一个TCP连接,之后才能传输数据.TCP提供超时重发,丢弃重复数据,检验数据,流量控制等功能,保证数据能从一 端传到另一端. UDP---用户数据报协议,是一个简单的面向数据报的运输层协议.UDP不提供可靠性,它只是把应用程序传给IP层的 数据报发送出去,但是并不能保证它们能到达目的地.由于UDP在传输数据报

常用排序算法时间复杂度和空间复杂度简析

1. preface /**** *    This article will try to explain something about: *        --Bubble sort. *        --Quick sort. *        --Merge sort. *        --Heap sort. *    To read this, some prerequisites is necessary: *        --a survive skill in C pr

CentOS的网络配置简析

我们在进行对CentOS的网络配置时,一般会从IP地址(IPADDR).子网掩码(NETMASK).网关(Gateway).主机名(HOSTNAME).DNS服务器等方面入手.而在CentOS中,又有着不同的命令或配置文件可以完成这些配置操作,接下来,我们将从ifcfg系命令,iproute2系命令以及配置文件3个方面来简析网络配置的方法. 一.ifcfg系命令 ifcfg系命令包括ifconfig,route,netstat和hostname. 1.ifconfig命令 用来配置一个网络接口.

JDK源码简析--java.lang包中的基础类库

题记 JDK,Java Development Kit. 我们必须先认识到,JDK只是,仅仅是一套Java基础类库而已,是Sun公司开发的基础类库,仅此而已,JDK本身和我们自行书写总结的类库,从技术含量来说,还是在一个层级上,它们都是需要被编译成字节码,在JRE中运行的,JDK编译后的结果就是jre/lib下得rt.jar,我们学习使用它的目的是加深对Java的理解,提高我们的Java编码水平. 本系列所有文章基于的JDK版本都是1.7.16. 本节内容 在本节中,简析java.lang包所包

.NET设计模式简析

首先,是设计模式的分类,我们知道,常用的设计模式共23种.但总体来说,设计模式氛围三大类: 创建型模式,共五种:工厂方法模式.抽象工厂模式.单列模式.建造者模式.原型模式. 结构型模式,共七种:适配器模式.装饰器模式.代理模式.外观模式.桥接模式.组合模式.享元模式. 行为型模式,共十一种:策略模式.模版方法模式.观察者模式.迭代子模式.责任链模式.命令模式.备忘录模式.转改模式.访问者模式.终结者模式.解释器模式. 另外还有并发型模式和线程池模式等. 介绍了分类,下面简单说下设计模式的六大原则

借助LANMT构架,简析ngnix的使用

LNMP流程图 nginx PHP Mysql Nginx Fastcgi_pass <-FastCGI-> fastcgi-(php-fpm)<->wrapper Php 解析器 (Php.ini) <->mysql fastcgi-(php-fpm)<->wrapper fastcgi-(php-fpm)<->wrapper fastcgi-(php-fpm)<->wrapper fastcgi-(php-fpm)<->

Android属性动画简析

简析 大家知道,我们在开发一款产品的时候为了达到良好的用户体验,我们可以在应用中适当的加上一些动画效果,譬如平移.缩放.旋转等等,但是这些常用的动画在Android很早期的版本中就存在了,我们称之为传统动画,传统动画一般分为Tween动画和Frame动画,这也是我们最常用的的动画,统称为Animation.传统的Animation动画实现上是通过不停的调用View的onDraw方法来重新绘制View来实现的. 在Android3.0以后,Google为Android新增了属性动画框架Animat