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 方法将枚举数提前到集合的第一个元素。
在调用 MoveNext 或 Reset 之前,Current 返回同一对象。 MoveNext 将 Current 设置为下一个元素。
如果 MoveNext 越过集合的结尾,则枚举数将被定位在此集合中最后一个元素的后面,且 MoveNext 将返回 false。 当枚举数位于此位置时,对 MoveNext 的后续调用也返回 false。 如果最后一次调用 MoveNext 返回 false,则调用 Current 会引发异常。 若要再次将 Current 设置为集合的第一个元素,可以调用 Reset,然后再调用 MoveNext。
只要集合保持不变,枚举数就保持有效。 如果对集合进行了更改(如添加、修改或删除元素),则枚举数将失效且不可恢复,并且下一次对 MoveNext 或 Reset 的调用将引发 InvalidOperationException。 如果在 MoveNext 和 Current 之间修改集合,那么即使枚举数已经无效,Current 也将返回它所设置成的元素。
枚举数没有对集合的独占访问权;因此,从头到尾对一个集合进行枚举在本质上不是一个线程安全的过程。 即使某个集合已同步,其他线程仍可以修改该集合,这会导致枚举数引发异常。 若要在枚举过程中保证线程安全,可以在整个枚举过程中锁定集合,或者捕捉由于其他线程进行的更改而引发的异常。
线程安全
此类型的任何公共 static(在 Visual Basic 中为 Shared) 成员都是线程安全的。但不保证所有实例成员都是线程安全的。