Partager via


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
Méthode protégée EnumerableComCollection<TComEnumerator, TEnumerated>(TComEnumerator) Initialise une nouvelle instance d'EnumerableComCollection<TComEnumerator, TEnumerated> pour l'énumérateur fourni.
Méthode protégée 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
Méthode publique Clone Clone l'élément avec l'énumérateur spécifié.
Méthode publique Equals Détermine si l'objet Object spécifié est égal à l'objet Object actuel. (Hérité de Object.)
Méthode protégée 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.)
Méthode publique GetEnumerator Obtient l'énumérateur.
Méthode publique GetHashCode Sert de fonction de hachage pour un type particulier. (Hérité de Object.)
Méthode publique GetType Obtient le Type de l'instance actuelle. (Hérité de Object.)
Méthode protégée MemberwiseClone Crée une copie superficielle de l'objet Object actuel. (Hérité de Object.)
Méthode publique NextItems Obtient le nombre spécifié d'éléments.
Méthode publique Reset Réinitialise le compteur de la collection.
Méthode publique Skip Ignore le nombre spécifié d'éléments.
Méthode publique ToString Retourne une chaîne qui représente l'objet actuel. (Hérité de Object.)

Début

Champs

  Nom Description
Champ protégéMembre statique DefaultCacheSize La taille du cache par défaut.

Début

Implémentations d'interface explicite

  Nom Description
Implémentation d'interface expliciteMéthode privée 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.

Voir aussi

Référence

Microsoft.VisualStudio.Shell, espace de noms