EnumerableComCollection<TComEnumerator, TEnumerated> 类
为 COM 样式 IEnumXXX 接口的提供一个 IEnumerable 包装的类型提供通用的基类。
继承层次结构
System.Object
Microsoft.VisualStudio.Shell.EnumerableComCollection<TComEnumerator, TEnumerated>
Microsoft.Internal.VisualStudio.PlatformUI.EnumerablePropertiesCollection
Microsoft.Internal.VisualStudio.PlatformUI.EnumerableVerbsCollection
Microsoft.VisualStudio.Shell.EnumerableHierarchiesCollection
命名空间: Microsoft.VisualStudio.Shell
程序集: Microsoft.VisualStudio.Shell.11.0(在 Microsoft.VisualStudio.Shell.11.0.dll 中)
语法
声明
Public MustInherit Class EnumerableComCollection(Of TComEnumerator, TEnumerated) _
Implements IEnumerable(Of TEnumerated), IEnumerable, _
IComEnumeratorRelay(Of TComEnumerator, TEnumerated)
public abstract class EnumerableComCollection<TComEnumerator, TEnumerated> : IEnumerable<TEnumerated>,
IEnumerable, IComEnumeratorRelay<TComEnumerator, TEnumerated>
类型参数
- TComEnumerator
COM 枚举器类型 (即。IEnumString)。
- TEnumerated
枚举数的类型。
EnumerableComCollection<TComEnumerator, TEnumerated> 类型公开以下成员。
构造函数
名称 | 说明 | |
---|---|---|
EnumerableComCollection<TComEnumerator, TEnumerated>(TComEnumerator) | 初始化 EnumerableComCollection<TComEnumerator, TEnumerated> 新实例由提供的枚举器。 | |
EnumerableComCollection<TComEnumerator, TEnumerated>(TComEnumerator, Int32) | 初始化 EnumerableComCollection<TComEnumerator, TEnumerated> 新的实例提供的枚举数和缓存的大小。 |
页首
方法
名称 | 说明 | |
---|---|---|
Clone | 克隆使用枚举指定的枚举数的项目。 | |
Equals | 确定指定的对象是否等于当前对象。 (继承自 Object。) | |
Finalize | 允许对象在“垃圾回收”回收之前尝试释放资源并执行其他清理操作。 (继承自 Object。) | |
GetEnumerator | 获取枚举器。 | |
GetHashCode | 用作特定类型的哈希函数。 (继承自 Object。) | |
GetType | 获取当前实例的 Type。 (继承自 Object。) | |
MemberwiseClone | 创建当前 Object 的浅表副本。 (继承自 Object。) | |
NextItems | 获取项目的指定数目。 | |
Reset | 重置收集的计数器。 | |
Skip | 跳过项的指定数量。 | |
ToString | 返回表示当前对象的字符串。 (继承自 Object。) |
页首
字段
名称 | 说明 | |
---|---|---|
DefaultCacheSize | 默认缓存大小。 |
页首
显式接口实现
名称 | 说明 | |
---|---|---|
IEnumerable.GetEnumerator | 获取枚举器。 |
页首
备注
从此类派生更改 COM 样式 IEnumXXX 接口添加到窗体中。 foreach 语句处理的类。您必须从此基类派生其他类由于这种泛型定义的 C#。
此类必须对它所包装的 COM 枚举数的方法 (Next()、 Skip() 等),但是,泛型类型可以访问属性和方法只访问在它们的约束指定的参数化类型。例如,可以调用 TComEnumerator。Next(),仅在 TComEnumerator 指定通知编译器的约束类型实现 Next()。
COM IEnumXXX 接口是强类型的。换言之, IEnumXXX。Next() 方法返回一个数组 XXX 对象。由于这些接口不具有公共基接口,则在 TComEnumerator 不能直接将约束。您可以通过实现接口 IComEnumeratorRelay<TComEnumerator, TEnumerated> 解决此问题。 EnumerableComCollection<TComEnumerator, TEnumerated> 接口。执行在 TComEnumerator这样允许泛型类型调用 COM 枚举器,而无需将约束。
线程安全
此类型的任何公共 static(在 Visual Basic 中为 Shared) 成员都是线程安全的。但不保证所有实例成员都是线程安全的。