ActivityCollection.GetEnumerator 方法

定义

实现对 .. 的 ICollection枚举接口。

public:
 System::Collections::Generic::IEnumerator<System::Workflow::ComponentModel::Activity ^> ^ GetEnumerator();
public System.Collections.Generic.IEnumerator<System.Workflow.ComponentModel.Activity> GetEnumerator();
override this.GetEnumerator : unit -> System.Collections.Generic.IEnumerator<System.Workflow.ComponentModel.Activity>
Public Function GetEnumerator () As IEnumerator(Of Activity)

返回

可以循环访问实例的 ReadOnlyCollectionBase 枚举器。

实现

注解

枚举器仅启用读取集合中的数据。 不能使用枚举器修改基础集合。

首先,枚举器位于集合中的第一个元素之前。 Reset 还将枚举器带回此位置。 在此位置,调用 Current 将引发异常。 因此,在读取值MoveNext之前,必须调用Current枚举器将枚举器提升到集合的第一个元素。

Current返回相同的对象,直到调用或MoveNextReset调用。 MoveNext 设置为 Current 下一个元素。

传递集合末尾后,枚举器将定位在集合中的最后一个元素之后,并调用 MoveNext 返回 false。 如果最后一次调用 MoveNext 返回 false,则调用 Current 将引发异常。

若要再次设置为 Current 集合的第一个元素,可以调用 Reset 后跟 MoveNext

只要集合保持不变,枚举器就保持有效。 如果对集合进行了更改(例如添加、修改或删除元素),则枚举器将不可逆地失效,并且下次调用 MoveNextReset 引发一个 InvalidOperationException 。 如果集合在两MoveNext者之间Current进行了修改,Current将返回它设置为的元素,即使枚举器已失效。

枚举器不具有对集合的独占访问权限;因此,通过集合进行枚举本质上不是线程安全的过程。 即使集合已同步,其他线程仍可以修改集合。 这会导致枚举器引发异常。 若要保证枚举期间的线程安全性,可以在整个枚举期间锁定集合,也可以捕获由其他线程所做的更改导致的异常。

适用于