Partager via


CachedDataHostItemEnumerator, classe

Itère un CachedDataHostItemCollection.

Hiérarchie d'héritage

System.Object
  Microsoft.VisualStudio.Tools.Applications.CachedDataHostItemEnumerator

Espace de noms :  Microsoft.VisualStudio.Tools.Applications
Assembly :  Microsoft.VisualStudio.Tools.Applications.ServerDocument (dans Microsoft.VisualStudio.Tools.Applications.ServerDocument.dll)

Syntaxe

'Déclaration
<PermissionSetAttribute(SecurityAction.Demand, Name := "FullTrust")> _
Public NotInheritable Class CachedDataHostItemEnumerator _
    Implements IEnumerator(Of CachedDataHostItem), IDisposable,  _
    IEnumerator
[PermissionSetAttribute(SecurityAction.Demand, Name = "FullTrust")]
public sealed class CachedDataHostItemEnumerator : IEnumerator<CachedDataHostItem>, 
    IDisposable, IEnumerator

Le type CachedDataHostItemEnumerator expose les membres suivants.

Propriétés

  Nom Description
Propriété publique Current Obtient le CachedDataHostItem à la position actuelle de l'énumérateur.

Début

Méthodes

  Nom Description
Méthode publique Equals Détermine si l'objet spécifié est identique à l'objet actuel. (Hérité de Object.)
Méthode publique GetHashCode Sert de fonction de hachage par défaut. (Hérité de Object.)
Méthode publique GetType Obtient le Type de l'instance actuelle. (Hérité de Object.)
Méthode publique MoveNext Avance l'énumérateur au CachedDataHostItem suivant de CachedDataHostItemCollection.
Méthode publique Reset Positionne l'énumérateur à sa position initiale, c'est-à-dire avant le premier CachedDataHostItem.
Méthode publique ToString Retourne une chaîne qui représente l'objet actif. (Hérité de Object.)

Début

Implémentations d'interface explicite

  Nom Description
Implémentation d'interface explicitePropriété privée IEnumerator.Current Pour obtenir une description de ce membre, consultez Current.
Implémentation d'interface expliciteMéthode privée IDisposable.Dispose Libère toutes les ressources utilisées par CachedDataHostItemEnumerator.

Début

Notes

Visual Basic et C# contiennent chacun une instruction qui masque la complexité des énumérateurs (foreach en C# et For Each en Visual Basic). Utilisez l'instruction correspondant au langage que vous utilisez au lieu de manipuler l'énumérateur directement.

Les énumérateurs peuvent être utilisés pour lire les données d'une collection, mais ils ne permettent pas de modifier la collection sous-jacente.

L'énumérateur est initialement positionné avant le premier élément de la collection. La méthode Reset ramène aussi l'énumérateur à cette position. À cette position, la définition de la propriété Current lève une exception. Par conséquent, vous devez appeler la méthode MoveNext pour avancer l'énumérateur au premier élément de la collection avant la lecture de la valeur de Current.

Current retourne le même objet jusqu'à l'appel de MoveNext ou de Reset. MoveNext affecte Current à l'élément suivant.

Si MoveNext passe la fin de la collection, l'énumérateur est placé après le dernier élément de la collection et MoveNext retourne false. Lorsque l'énumérateur est à cette position, les appels suivants à MoveNext retournent également false. Si le dernier appel à MoveNext a retourné false, un appel à Current lève une exception. Pour affecter à nouveau le premier élément de la collection comme valeur de Current, vous pouvez appeler Reset, puis MoveNext.

Un énumérateur reste valide tant que la collection reste inchangée. Si la collection est modifiée par l'ajout, la modification ou la suppression d'éléments, l'énumérateur est invalidé de manière définitive et l'appel suivant à MoveNext ou à Reset lève InvalidOperationException. Si la collection est modifiée entre MoveNext et Current, Current retourne l'élément dont elle a la valeur, même si l'énumérateur n'est déjà plus valide.

L'énumérateur ne dispose pas d'un accès exclusif à la collection. Par conséquent, l'énumération d'une collection n'est intrinsèquement pas une procédure thread-safe. Même lorsqu'une collection est synchronisée, les autres threads peuvent toujours modifier la collection, ce qui entraîne la levée d'une exception par l'énumérateur. Afin de garantir la cohérence de thread au cours de l'énumération, vous pouvez soit verrouiller la collection pendant l'ensemble de l'énumération, soit intercepter les exceptions résultant des modifications apportées par les autres threads.

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.Tools.Applications, espace de noms