StringKeyFrameCollection.GetEnumerator 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
返回一个可循环访问集合的枚举数。
public:
virtual System::Collections::IEnumerator ^ GetEnumerator();
public System.Collections.IEnumerator GetEnumerator ();
abstract member GetEnumerator : unit -> System.Collections.IEnumerator
override this.GetEnumerator : unit -> System.Collections.IEnumerator
Public Function GetEnumerator () As IEnumerator
返回
可遍历集合的IEnumerator。
实现
注解
枚举器仅允许读取集合中的数据。 枚举器不能用于修改基础集合。
最初,枚举器位于集合中的第一项之前。 Reset 也会将枚举器放回此位置。 在此位置,调用 Current 将引发异常。 因此,在读取 的值Current之前,必须调用 MoveNext 将枚举器推进到集合的第一项。
在调用 Current 或 MoveNext 之前,Reset 返回同一对象。 MoveNext 设置为 Current 下一项。
传递集合的末尾后,枚举器将定位在集合中的最后一项之后,调用 MoveNext 将 false
返回 。 如果最后一次调用 MoveNext 返回 , false
则调用 Current 将引发异常。 若要再次设置为 Current 集合的第一项,可以调用 Reset 后 MoveNext跟 。
只要集合保持不变,枚举器就仍有效。 如果对集合进行了更改(例如添加、修改或删除项),枚举器将不可恢复地失效,下一次InvalidOperationException调用 MoveNext 或 Reset 引发 。 如果在 和 CurrentCurrent 之间MoveNext修改集合,则将返回它设置为的项,即使枚举器已失效。
枚举数没有对集合的独占访问权;因此,从头到尾对一个集合进行枚举在本质上不是一个线程安全的过程。 即使集合已同步,其他线程仍可修改集合,从而导致枚举器引发异常。 若要确保枚举过程中的线程安全性,可以在整个枚举期间锁定集合,或者捕获由其他线程进行的更改所导致的异常。