Transform3DCollection.GetEnumerator 方法

定义

返回一个可循环访问集合的枚举数。

public:
 System::Windows::Media::Media3D::Transform3DCollection::Enumerator GetEnumerator();
public System.Windows.Media.Media3D.Transform3DCollection.Enumerator GetEnumerator ();
member this.GetEnumerator : unit -> System.Windows.Media.Media3D.Transform3DCollection.Enumerator
Public Function GetEnumerator () As Transform3DCollection.Enumerator

返回

Transform3DCollection.Enumerator

一个可循环访问集合的枚举数。

注解

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

最初,枚举器位于集合中的第一个项之前。 也会将枚举器放回此位置。 在此位置,调用 Current 将引发异常。 因此,在读取 Current 值之前,必须调用 MoveNext 将枚举器推进到集合的第一项。

当前返回相同的对象,直到调用 MoveNext 或 Reset 调用。 MoveNext 将“当前”设置为下一项。

传递集合末尾后,枚举器位于集合中最后一项之后,调用 MoveNext 返回 false。 如果最后一次调用 MoveNext 返回 false,则调用 Current 将引发异常。 若要再次将“当前”设置为集合的第一项,可以调用 Reset,后跟 MoveNext。

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

枚举数没有对集合的独占访问权;因此,从头到尾对一个集合进行枚举在本质上不是一个线程安全的过程。 即使集合同步,其他线程仍可以修改集合,这会导致枚举器引发异常。 若要确保枚举过程中的线程安全性,可以在整个枚举期间锁定集合,或者捕获由其他线程进行的更改所导致的异常。

适用于