EnumerableComCollection<TComEnumerator,TEnumerated> クラス
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
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 の場合は、空の列挙を返します。 |