对IEnumerator接口,及相关知识的学习
1。IEnumerator接口
支持在集合上进行简单迭代。(支持使用For Each语法)
<Guid("496B0ABF-CDEE-11d3-88E8-00902754C43A")>
Public Interface IEnumerator
IEnumerator 是所有枚举数的基接口。
枚举数只允许读取集合中的数据。枚举数无法用于修改基础集合。
最初,枚举数被定位于集合中第一个元素的前面。
Reset 也将枚举数返回到此位置。
在此位置,调用 Current 会引发异常。
因此,在读取 Current 的值之前,必须调用 MoveNext 将枚举数提前到集合的第一个元素。
在调用 MoveNext 或 Reset 之前,Current 返回同一对象。
MoveNext 将 Current 设置为下一个元素。
在传递到集合的末尾之后,枚举数放在集合中最后一个元素后面,且调用 MoveNext 会返回 false。
如果最后一次调用 MoveNext 返回 false,则调用 Current 会引发异常。
若要再次将 Current 设置为集合的第一个元素,可以调用 Reset,然后再调用 MoveNext。
只要集合保持不变,枚举数就将保持有效。
如果对集合进行了更改(例如添加、修改或删除元素),则该枚举数将失效且不可恢复,
并且下一次对 MoveNext 或 Reset 的调用将引发 InvalidOperationException。
如果在 MoveNext 和 Current 之间修改集合,那么即使枚举数已经无效,Current 也将返回它所设置成的元素。
成员:
Current属性:获取集合中的当前元素。
ReadOnly Property Current As Object
MoveNext方法:将枚举数推进到集合的下一个元素。
Function MoveNext() As Boolean
Reset方法:将枚举数设置为其初始位置,该位置位于集合中第一个元素之前。
Sub Reset()
2.IEnumerable
公开枚举数,该枚举数支持在集合上进行简单迭代。
<Guid("496B0ABE-CDEE-11d3-88E8-00902754C43A")>
Public Interface IEnumerable
必须实现 IEnumerable 以支持 Microsoft Visual Basic 的 ForEach 语义。
允许枚举数的 COM 类也实现此接口。
成员:
GetEnumerator:返回可循环访问集合的枚举数。
Function GetEnumerator() As IEnumerator
3.ICollection
定义所有集合的大小,枚举数和同步方法
System.Collections.IEnumerable
System.Collections.ICollection
Public Interface ICollection
Inherits IEnumerable
ICollection 接口是 System.Collections 命名空间中类的基接口。
IDictionary 和 IList 是基于 ICollection 接口的更专用的接口。
IDictionary 实现是键/值对的集合,如 Hashtable 类。
IList 实现是可被排序且可按照索引访问其成员的值的集合,如 ArrayList 类。
某些集合(如 Queue 类和 Stack 类)限制对其成员的访问,它们直接实现 ICollection 接口。
如果 IDictionary 接口和 IList 接口都不能满足所需集合的要求,
则从 ICollection 接口派生新集合类以提高灵活性。
4.Enum类
为枚举提供基类。
System.Object
System.ValueType
System.Enum
派生类
<Serializable>
MustInherit Public Class Enum
Implements IComparable, IFormattable, IConvertible