IDTSInputColumnCollection100.GetEnumerator 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
public:
System::Collections::IEnumerator ^ GetEnumerator();
[System.Runtime.InteropServices.DispId(-4)]
public System.Collections.IEnumerator GetEnumerator();
[<System.Runtime.InteropServices.DispId(-4)>]
abstract member GetEnumerator : unit -> System.Collections.IEnumerator
Public Function GetEnumerator () As IEnumerator
返回
IEnumerator用于迭代集合。
实现
- 属性
注解
枚举器仅允许读取集合中的数据。 枚举器不能用于修改基础集合。
最初,枚举器位于集合中的第一个元素之前。 重置 还会让枚举器回到这个位置。 此时,呼叫 Current 会抛出异常。 因此,您必须调用 MoveNext ,先将枚举器推进到集合的第一个元素,然后再读取 Current的值。
Current 返回同一对象,直到调用 MoveNext 或 Reset 。 MoveNext 将 Current 设置为下一个元素。
集合结束后,枚举器位于集合的最后一个元素之后,调用 MoveNext 返回 false。 如果最后一次调用 MoveNext 返回 false,调用 Current 会抛出异常。 要将 Current 再次设置为集合的第一个元素,你可以调用 Reset ,然后调用 MoveNext。
只要集合保持不变,枚举器就保持有效。 如果对集合进行了更改,比如添加、修改或删除元素,枚举器将不可恢复地失效,下一次调用 MoveNext 或 Reset 会抛出 InvalidOperationException。 如果集合在 MoveNext 和 Current 之间被修改, Current 会返回它被设定的元素,即使枚举器已经失效。
枚举器不具有对集合的独占访问权限;因此,通过集合进行枚举本质上不是线程安全的过程。 即使集合同步,其他线程仍可以修改集合,这会导致枚举器引发异常。 若要保证枚举期间的线程安全性,可以在整个枚举期间锁定集合,也可以捕获由其他线程所做的更改导致的异常。