Classe EnumerableComCollection<TComEnumerator, TEnumerated>
Fornisce una classe base generica per i tipi che forniscono un wrapper di IEnumerable intorno alle interfacce di tipo COM di IEnumXXX .
Gerarchia di ereditarietà
System.Object
Microsoft.VisualStudio.Shell.EnumerableComCollection<TComEnumerator, TEnumerated>
Microsoft.Internal.VisualStudio.PlatformUI.EnumerablePropertiesCollection
Microsoft.Internal.VisualStudio.PlatformUI.EnumerableVerbsCollection
Microsoft.VisualStudio.Shell.EnumerableHierarchiesCollection
Spazio dei nomi: Microsoft.VisualStudio.Shell
Assembly: Microsoft.VisualStudio.Shell.11.0 (in Microsoft.VisualStudio.Shell.11.0.dll)
Sintassi
'Dichiarazione
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>
Parametri di tipo
- TComEnumerator
Un tipo dell'enumeratore COM (ad esempioIEnumString).
- TEnumerated
Il tipo dell'enumeratore.
Il tipo EnumerableComCollection<TComEnumerator, TEnumerated> espone i seguenti membri.
Costruttori
Nome | Descrizione | |
---|---|---|
![]() |
EnumerableComCollection<TComEnumerator, TEnumerated>(TComEnumerator) | inizializza una nuova istanza di EnumerableComCollection<TComEnumerator, TEnumerated> per l'enumeratore fornito. |
![]() |
EnumerableComCollection<TComEnumerator, TEnumerated>(TComEnumerator, Int32) | Inizializza una nuova istanza di EnumerableComCollection<TComEnumerator, TEnumerated> per l'enumeratore e la dimensione della cache forniti. |
In alto
Metodi
Nome | Descrizione | |
---|---|---|
![]() |
Clone | Esegue l'elemento con l'enumeratore specificato. |
![]() |
Equals | Determina se l'oggetto specificato equivale all'oggetto corrente. (Ereditato da Object) |
![]() |
Finalize | Consente a un oggetto di provare a liberare risorse ed eseguire altre operazioni di pulitura prima che l'oggetto stesso venga recuperato dalla procedura di Garbage Collection. (Ereditato da Object) |
![]() |
GetEnumerator | Ottiene enumeratore. |
![]() |
GetHashCode | Funge da funzione hash per un determinato tipo. (Ereditato da Object) |
![]() |
GetType | Ottiene l'oggetto Type dell'istanza corrente. (Ereditato da Object) |
![]() |
MemberwiseClone | Consente di creare una copia dei riferimenti dell'oggetto Object corrente. (Ereditato da Object) |
![]() |
NextItems | Ottiene il numero specificato di elementi. |
![]() |
Reset | Reimposta il contatore della raccolta. |
![]() |
Skip | Ignora il numero specificato di elementi. |
![]() |
ToString | Restituisce una stringa che rappresenta l'oggetto corrente. (Ereditato da Object) |
In alto
Campi
Nome | Descrizione | |
---|---|---|
![]() ![]() |
DefaultCacheSize | La dimensione della cache predefinita. |
In alto
Implementazioni esplicite dell'interfaccia
Nome | Descrizione | |
---|---|---|
![]() ![]() |
IEnumerable.GetEnumerator | Ottiene enumeratore. |
In alto
Note
Classi che derivano da tale modifica della classe un'interfaccia di tipo COM di IEnumXXX in un formato che può essere elaborato da un'istruzione di foreach .È necessario derivare una classe separata da questa classe base a causa della modalità i generics di c# definito.
Questa classe deve chiamare i metodi chiama sull'enumeratore COM che esegue il wrapping (Next(), Skip(), e così via.), ma i tipi generici possono accedere alle proprietà e i metodi solo su tipi con parametri specificati nei vincoli.Ad esempio, è possibile chiamare TComEnumerator. Next() solo se si specifica un vincolo su TComEnumerator che indica al compilatore che il tipo implementa Next().
Le interfacce COM IEnumXXX sono fortemente tipizzate.Ovvero IEnumXXX. Il metodo di Next() restituisce una matrice di oggetti di XXX .Poiché queste interfacce non dispongono di un'interfaccia comune, non è possibile inserire direttamente un vincolo su TComEnumerator .È possibile risolvere questo problema implementando l'interfaccia di IComEnumeratorRelay<TComEnumerator, TEnumerated> con l'interfaccia di EnumerableComCollection<TComEnumerator, TEnumerated> .Questa operazione consente il tipo generico alla chiamata nell'enumeratore COM senza dover inserire un vincolo su TComEnumerator.
Codice thread safe
Qualsiasi membro static (Shared in Visual Basic) pubblico di questo tipo è thread-safe. I membri di istanza non sono garantiti come thread-safe.