CachedDataItemEnumerator, classe
Itère un CachedDataItemCollection.
Hiérarchie d'héritage
System.Object
Microsoft.VisualStudio.Tools.Applications.CachedDataItemEnumerator
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 CachedDataItemEnumerator _
Implements IEnumerator(Of CachedDataItem), IDisposable, _
IEnumerator
[PermissionSetAttribute(SecurityAction.Demand, Name = "FullTrust")]
public sealed class CachedDataItemEnumerator : IEnumerator<CachedDataItem>,
IDisposable, IEnumerator
Le type CachedDataItemEnumerator expose les membres suivants.
Propriétés
Nom | Description | |
---|---|---|
Current | Obtient le CachedDataItem à la position actuelle de l'énumérateur. |
Début
Méthodes
Nom | Description | |
---|---|---|
Equals | Détermine si l'objet spécifié est identique à l'objet actuel. (Hérité de Object.) | |
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.) | |
MoveNext | Avance l'énumérateur au CachedDataItem suivant de CachedDataItemCollection. | |
Reset | Positionne l'énumérateur à sa position initiale, c'est-à-dire avant le premier CachedDataItem. | |
ToString | Retourne une chaîne qui représente l'objet actif. (Hérité de Object.) |
Début
Implémentations d'interface explicite
Nom | Description | |
---|---|---|
IEnumerator.Current | Pour obtenir une description de ce membre, consultez Current. | |
IDisposable.Dispose | Libère toutes les ressources utilisées par CachedDataItemEnumerator. |
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.