
.net源码
我是蝉蜕
U3D
展开
-
C#源码分析—LinkedList
LinkedList为双向循环链表,链表的定义请自行百度;先贴一下节点类: // Note following class is not serializable since we customized the serialization of LinkedList. [System.Runtime.InteropServices.ComVisible(false)] ...原创 2019-11-23 20:06:37 · 976 阅读 · 1 评论 -
C#源码分析—Queue
Queue内部通过数组实现数据的存储,字段_head和_tail分别表示队首元素和队尾元素,字段_size表示存储的元素数量,其相关字段如下: private T[] _array; //内部数组 private int _head; // First valid element in the queue -- 队首 pri...原创 2019-11-23 17:20:19 · 455 阅读 · 0 评论 -
C#源码分析—Stack
Stack内部通过数组来实现数据的存储,其大部分方法和List相同,这里不再分析,有兴趣的请自行查看源码。Stack通过字段_size来表示内部存储的元素数量,由于Stack时先进后出,所以通过_size控制内部数组的最后一个元素的添加和删除即可。Peek函数: // Returns the top object on the stack without removing ...原创 2019-11-23 16:37:04 · 320 阅读 · 0 评论 -
C#源码分析—ArrayList
ArrayList的源码和List的源码基本相似,只不过List是泛型集合而ArrayList是Object,关于ArrayList和List的优缺点这里不再叙述,请自行百度。需要说明的一点List实现了IList<T>、IList和IReadOnlyList<T>接口,而ArrayList实现了IList和ICloneable接口。字段: priv...原创 2019-11-11 16:17:07 · 469 阅读 · 0 评论 -
C#源码分析—List
字段: private const int _defaultCapacity = 4; //默认容量 private T[] _items; //内部数组 [ContractPublicPropertyName("Count")] private int _...原创 2019-11-10 22:27:15 · 435 阅读 · 0 评论