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) 成员都是线程安全的。但不保证所有实例成员都是线程安全的。

请参见

参考

Microsoft.VisualStudio.Shell 命名空间