EnumerableComCollection<TComEnumerator, TEnumerated>, classe
Fournit une classe de base générique pour les types qui fournissent un wrapper d'IEnumerable autour des interfaces de style COM d'IEnumXXX.
Hiérarchie d'héritage
System.Object
Microsoft.VisualStudio.Shell.EnumerableComCollection<TComEnumerator, TEnumerated>
Microsoft.Internal.VisualStudio.PlatformUI.EnumerablePropertiesCollection
Microsoft.Internal.VisualStudio.PlatformUI.EnumerableVerbsCollection
Microsoft.VisualStudio.Shell.EnumerableHierarchiesCollection
Espace de noms : Microsoft.VisualStudio.Shell
Assembly : Microsoft.VisualStudio.Shell.11.0 (dans Microsoft.VisualStudio.Shell.11.0.dll)
Syntaxe
'Déclaration
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>
Paramètres de type
- TComEnumerator
Un type d'énumérateur de COM (par exemple.IEnumString).
- TEnumerated
Le type de l'énumérateur.
Le type EnumerableComCollection<TComEnumerator, TEnumerated> expose les membres suivants.
Constructeurs
Nom | Description | |
---|---|---|
EnumerableComCollection<TComEnumerator, TEnumerated>(TComEnumerator) | Initialise une nouvelle instance d'EnumerableComCollection<TComEnumerator, TEnumerated> pour l'énumérateur fourni. | |
EnumerableComCollection<TComEnumerator, TEnumerated>(TComEnumerator, Int32) | Initialise une nouvelle instance d'EnumerableComCollection<TComEnumerator, TEnumerated> pour l'énumérateur et la taille du cache fournis. |
Début
Méthodes
Nom | Description | |
---|---|---|
Clone | Clone l'élément avec l'énumérateur spécifié. | |
Equals | Détermine si l'objet Object spécifié est égal à l'objet Object actuel. (Hérité de Object.) | |
Finalize | Autorise un objet à tenter de libérer des ressources et d'exécuter d'autres opérations de nettoyage avant qu'il ne soit récupéré par l'opération garbage collection. (Hérité de Object.) | |
GetEnumerator | Obtient l'énumérateur. | |
GetHashCode | Sert de fonction de hachage pour un type particulier. (Hérité de Object.) | |
GetType | Obtient le Type de l'instance actuelle. (Hérité de Object.) | |
MemberwiseClone | Crée une copie superficielle de l'objet Object actuel. (Hérité de Object.) | |
NextItems | Obtient le nombre spécifié d'éléments. | |
Reset | Réinitialise le compteur de la collection. | |
Skip | Ignore le nombre spécifié d'éléments. | |
ToString | Retourne une chaîne qui représente l'objet actuel. (Hérité de Object.) |
Début
Champs
Nom | Description | |
---|---|---|
DefaultCacheSize | La taille du cache par défaut. |
Début
Implémentations d'interface explicite
Nom | Description | |
---|---|---|
IEnumerable.GetEnumerator | Obtient l'énumérateur. |
Début
Remarques
Classes qui dérivent de cette modification de classe une interface de style COM d'IEnumXXX dans un formulaire qui peut être traité par une instruction d'foreach.Vous devez dériver une classe distincte de cette classe de base en raison de la manière dont des génériques de C- sont définis.
Cette classe doit appeler des méthodes sur l'énumérateur de COM qu'il encapsule (suivant (), le saut (), etc.), mais les types génériques peuvent accéder à des propriétés et à des méthodes uniquement sur les types paramétrables qui sont spécifiés dans leurs contraintes.Par exemple, vous pouvez appeler TComEnumerator. Suivant () uniquement si vous spécifiez une contrainte sur TComEnumerator qui indique au compilateur que le type implémente suivant ().
Les interfaces de COM IEnumXXX sont fortement typées.En d'autres termes, IEnumXXX. () La méthode suivante retourne un tableau d'objets de XXX.Comme ces interfaces n'ont pas une interface de base courante, vous ne pouvez pas placer une contrainte sur TComEnumerator directement.Vous pouvez résoudre ce problème en implémentant l'interface d'IComEnumeratorRelay<TComEnumerator, TEnumerated> avec l'interface d'EnumerableComCollection<TComEnumerator, TEnumerated>.Cela permet le type générique à l'appel dans l'énumérateur de COM sans devoir placer une contrainte sur TComEnumerator.
Sécurité des threads
Tous les membres static (Shared en Visual Basic) publics de ce type sont thread-safe. Il n'est pas garanti que les membres d'instance soient thread-safe.