Udostępnij przez


EnumerableComCollection<TComEnumerator,TEnumerated> Klasa

Definicja

Ogólna klasa bazowa dla typów, które zapewniają otokę IEnumerable wokół interfejsów IEnumXXX w stylu COM.

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)

Parametry typu

TComEnumerator

Typ modułu wyliczającego COM (np. IEnumString)

TEnumerated

Typ wyliczone przez TComEnumerator (np. ciąg)

Dziedziczenie
EnumerableComCollection<TComEnumerator,TEnumerated>
Pochodne
Implementuje

Uwagi

Klasy pochodzące z tej klasy dostosowują interfejs IEnumXXX w stylu COM do formularza, który może być przetwarzany przez instrukcję foreach. W idealnym przypadku ta klasa ogólna byłaby wystarczająca samodzielnie bez konieczności wykonywania zadania przez klasę pochodną, ale należy zdefiniować rygor, z którym muszą być zdefiniowane typy ogólne języka C#.

Ta klasa musi wywoływać metody w module wyliczania COM, które opakowuje (Dalej, Pomiń itp.), ale typy ogólne mogą uzyskiwać dostęp tylko do właściwości i metod w ich sparametryzowanych typach określonych w ograniczeniach sparametryzowanych typów. W szczególności możemy wywołać metodę TComEnumerator.Next, jeśli określimy ograniczenie dla modułu TComEnumerator, który informuje kompilator, że moduł TComEnumerator implementuje polecenie Next.

Interfejsy COM IEnumXXX są silnie typizowane (tj. IEnumXXX.Next zwraca tablicę obiektów XXX) i nie mają wspólnej klasy bazowej, więc nie możemy umieścić ograniczenia bezpośrednio w module TComEnumerator. Tutaj znajduje się element IComEnumeratorRelay: EnumerableComCollection wymaga, aby klasa pochodna implementowała silnie typizowane interfejs IComEnumeratorRelay, który umożliwia wywołanie typu ogólnego do modułu wyliczającego COM bez konieczności umieszczania ograniczenia w module TComEnumerator.

Konstruktory

EnumerableComCollection<TComEnumerator,TEnumerated>(TComEnumerator)

Inicjuje nowe wystąpienie dla podanego modułu EnumerableComCollection<TComEnumerator,TEnumerated> wyliczającego.

EnumerableComCollection<TComEnumerator,TEnumerated>(TComEnumerator, Int32)

Inicjuje nowe wystąpienie dla podanego modułu EnumerableComCollection<TComEnumerator,TEnumerated> wyliczającego i rozmiaru pamięci podręcznej.

Pola

DefaultCacheSize

Domyślny rozmiar pamięci podręcznej.

Metody

Clone(TComEnumerator, TComEnumerator)

Klonuje element za pomocą określonego modułu wyliczającego .

GetEnumerator()

Pobiera moduł wyliczający.

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

Pobiera określoną liczbę elementów.

Reset(TComEnumerator)

Resetuje licznik kolekcji.

Skip(TComEnumerator, UInt32)

Pomija określoną liczbę elementów.

Jawne implementacje interfejsu

IEnumerable.GetEnumerator()

Pobiera moduł wyliczający.

Metody rozszerzania

EmptyIfNull<T>(IEnumerable<T>)

Zwróć to wyliczenie, jeśli nie ma wartości null. W przypadku, gdy jest zwracana wartość null, zwracana jest pusta wyliczenie.

Dotyczy