IDTSFriendlyEnumCollection100.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
返回
可以循环访问的 IDTSFriendlyEnumCollection100IEnumerator。
实现
- 属性
注解
枚举器仅允许读取集合中的数据。 枚举器不能用于修改基础集合。
最初,枚举数定位在集合中第一个元素的前面。 Reset
也会将枚举器放回此位置。 在此位置,调用 Current
将引发异常。 因此,在读取 MoveNext
的值之前,必须调用 Current
将枚举器向前移动到集合的第一个元素。
在调用 Current
或 MoveNext
之前,Reset
返回同一对象。 MoveNext
将 Current
设置为下一个元素。
在传递到集合的末尾之后,枚举数放在集合中最后一个元素后面,且调用 MoveNext
会返回 false
。 如果返回false
的最后一次调用MoveNext
,则调用Current
将引发异常。 若要再次将 Current
设置为集合的第一个元素,可以调用 Reset
并接着调用 MoveNext
。
只要集合保持不变,枚举器就仍有效。 如果集合发生更改(如添加、修改或删除元素),则枚举器无效且无法恢复,对 MoveNext
或 Reset
的下一个调用将引发 InvalidOperationException
。 如果集合在两者之间MoveNext
Current
进行了修改,Current
则返回它设置为的元素,即使枚举器已失效。
枚举数没有对集合的独占访问权;因此,从头到尾对一个集合进行枚举在本质上不是一个线程安全的过程。 即使某个集合已同步,其他线程仍可以修改该集合,这会导致枚举数引发异常。 若要保证枚举期间的线程安全性,可以在整个枚举期间锁定集合,也可以捕获由其他线程所做的更改导致的异常。