EnumerableComCollection<TComEnumerator,TEnumerated> クラス

定義

COM スタイルの IEnumXXX インターフェイスに関する IEnumerable ラッパーを提供する型のジェネリック 基底クラス。

generic <typename TComEnumerator, typename TEnumerated>
public ref class EnumerableComCollection abstract : Microsoft::VisualStudio::Shell::IComEnumeratorRelay<TComEnumerator, TEnumerated>, System::Collections::Generic::IEnumerable<TEnumerated>
public abstract class EnumerableComCollection<TComEnumerator,TEnumerated> : Microsoft.VisualStudio.Shell.IComEnumeratorRelay<TComEnumerator,TEnumerated>, System.Collections.Generic.IEnumerable<TEnumerated>
type EnumerableComCollection<'ComEnumerator, 'Enumerated> = class
    interface seq<'Enumerated>
    interface IEnumerable
    interface IComEnumeratorRelay<'ComEnumerator, 'Enumerated>
Public MustInherit Class EnumerableComCollection(Of TComEnumerator, TEnumerated)
Implements IComEnumeratorRelay(Of TComEnumerator, TEnumerated), IEnumerable(Of TEnumerated)

型パラメーター

TComEnumerator

COM 列挙子の種類 (IEnumString など)

TEnumerated

によって TComEnumerator 列挙された型 (例: string)

継承
EnumerableComCollection<TComEnumerator,TEnumerated>
派生
実装

注釈

このクラスから派生するクラスは、COM スタイルの IEnumXXX インターフェイスを、foreach ステートメントで処理できるフォームに適合させます。 理想的には、このジェネリック クラスは、派生クラスがジョブを実行する必要なしに単独で十分ですが、C# ジェネリックを定義する必要がある厳密さによって、これを防ぐことができます。

このクラスは、ラップする COM 列挙子のメソッド (Next、Skip など) を呼び出す必要がありますが、ジェネリック型は、パラメーター化された型の制約で指定されたパラメーター化された型のプロパティとメソッドにのみアクセスできます。 具体的には、TComEnumerator が Next を実装することをコンパイラに指示する制約を TComEnumerator に指定した場合にのみ、TComEnumerator.Next を呼び出すことができます。

COM IEnumXXX インターフェイスは厳密に型指定され (つまり、IEnumXXX.Next は XXX オブジェクトの配列を返します)、共通の基底クラスがないため、TComEnumerator に制約を直接配置することはできません。 IComEnumeratorRelay が入っている場所: EnumerableComCollection では、その派生クラスが厳密に型指定された IComEnumeratorRelay インターフェイスを実装する必要があります。これにより、ジェネリック型は TComEnumerator に制約を設定せずに COM 列挙子を呼び出すことができます。

コンストラクター

EnumerableComCollection<TComEnumerator,TEnumerated>(TComEnumerator)

指定された列挙子の の EnumerableComCollection<TComEnumerator,TEnumerated> 新しいインスタンスを初期化します。

EnumerableComCollection<TComEnumerator,TEnumerated>(TComEnumerator, Int32)

指定された列挙子とキャッシュ サイズの の新しいインスタンス EnumerableComCollection<TComEnumerator,TEnumerated> を初期化します。

フィールド

DefaultCacheSize

既定のキャッシュ サイズ。

メソッド

Clone(TComEnumerator, TComEnumerator)

指定した列挙子 を使用して項目を複製します。

GetEnumerator()

列挙子を取得します。

NextItems(TComEnumerator, UInt32, TEnumerated[], UInt32)

指定した項目数を取得します。

Reset(TComEnumerator)

コレクションのカウンターをリセットします。

Skip(TComEnumerator, UInt32)

指定した数の項目をスキップします。

明示的なインターフェイスの実装

IEnumerable.GetEnumerator()

列挙子を取得します。

拡張メソッド

EmptyIfNull<T>(IEnumerable<T>)

null でない場合は、この列挙体を返します。 null の場合は、空の列挙を返します。

適用対象