CachedDataItemEnumerator 类

循环访问 CachedDataItemCollection

继承层次结构

System.Object
  Microsoft.VisualStudio.Tools.Applications.CachedDataItemEnumerator

命名空间:  Microsoft.VisualStudio.Tools.Applications
程序集:  Microsoft.VisualStudio.Tools.Applications.ServerDocument(在 Microsoft.VisualStudio.Tools.Applications.ServerDocument.dll 中)

语法

声明
<PermissionSetAttribute(SecurityAction.Demand, Name := "FullTrust")> _
Public NotInheritable Class CachedDataItemEnumerator _
    Implements IEnumerator(Of CachedDataItem), IDisposable,  _
    IEnumerator
[PermissionSetAttribute(SecurityAction.Demand, Name = "FullTrust")]
public sealed class CachedDataItemEnumerator : IEnumerator<CachedDataItem>, 
    IDisposable, IEnumerator

CachedDataItemEnumerator 类型公开以下成员。

属性

  名称 说明
公共属性 Current 获取枚举数当前所在位置的 CachedDataItem

页首

方法

  名称 说明
公共方法 Equals 确定指定的对象是否等于当前对象。 (继承自 Object。)
公共方法 GetHashCode 用作特定类型的哈希函数。 (继承自 Object。)
公共方法 GetType 获取当前实例的 Type。 (继承自 Object。)
公共方法 MoveNext 将枚举数前移到 CachedDataItemCollection 中的下一个 CachedDataItem
公共方法 Reset 将枚举数设置为其初始位置,该位置在集合中第一个 CachedDataItem 之前。
公共方法 ToString 返回表示当前对象的字符串。 (继承自 Object。)

页首

显式接口实现

  名称 说明
显式接口实现私有属性 IEnumerator.Current 有关此成员的说明,请参见 Current
显式接口实现私有方法 IDisposable.Dispose 释放由 CachedDataItemEnumerator 使用的所有资源。

页首

备注

Visual Basic 和 C# 各包含一条隐藏枚举数复杂性的语句,该语句在 C# 中是 foreach,在 Visual Basic 中是 For Each。 请使用您所使用的语言的适当语句,而不直接操作枚举数。

枚举数可用于读取集合中的数据,但不能用于修改基础集合。

最初,枚举数被定位于集合中第一个元素的前面。 Reset 方法还会将枚举数返回到此位置。 在此位置设置 Current 属性会引发异常。 因此,在读取 Current 的值之前,必须调用 MoveNext 方法将枚举数提前到集合的第一个元素。

在调用 MoveNextReset 之前,Current 返回同一对象。 MoveNextCurrent 设置为下一个元素。

如果 MoveNext 越过集合的结尾,则枚举数将被定位在此集合中最后一个元素的后面,且 MoveNext 将返回 false。 当枚举数位于此位置时,对 MoveNext 的后续调用也返回 false。 如果最后一次调用 MoveNext 返回 false,则调用 Current 会引发异常。 若要再次将 Current 设置为集合的第一个元素,可以调用 Reset,然后再调用 MoveNext

只要集合保持不变,枚举数就保持有效。 如果对集合进行了更改(如添加、修改或删除元素),则枚举数将失效且不可恢复,并且下一次对 MoveNextReset 的调用将引发 InvalidOperationException。 如果在 MoveNextCurrent 之间修改集合,那么即使枚举数已经无效,Current 也将返回它所设置成的元素。

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

线程安全

此类型的任何公共 static(在 Visual Basic 中为 Shared) 成员都是线程安全的。但不保证所有实例成员都是线程安全的。

请参见

参考

Microsoft.VisualStudio.Tools.Applications 命名空间