CSDN博客

img colayungnew

.net Framework拾遗(3) IEnumerator,IEnumerable,ICollection接口,Enum类

发表于2004/10/27 14:07:00  1297人阅读

对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

  

 

 

 

阅读全文
0 0

相关文章推荐

img
取 消
img