EnumerableComCollection<TComEnumerator,TEnumerated> Klasa
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
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. |