Classe CachedDataItemEnumerator
Scorre un oggetto CachedDataItemCollection.
Gerarchia di ereditarietà
System.Object
Microsoft.VisualStudio.Tools.Applications.CachedDataItemEnumerator
Spazio dei nomi: Microsoft.VisualStudio.Tools.Applications
Assembly: Microsoft.VisualStudio.Tools.Applications.ServerDocument (in Microsoft.VisualStudio.Tools.Applications.ServerDocument.dll)
Sintassi
'Dichiarazione
<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
Il tipo CachedDataItemEnumerator espone i seguenti membri.
Proprietà
Nome | Descrizione | |
---|---|---|
Current | ottiene CachedDataItem la posizione corrente dell'enumeratore. |
In alto
Metodi
Nome | Descrizione | |
---|---|---|
Equals | Determina se l'oggetto specificato equivale all'oggetto corrente. (Ereditato da Object) | |
GetHashCode | Funge da funzione hash per un determinato tipo. (Ereditato da Object) | |
GetType | Ottiene l'oggetto Type dell'istanza corrente. (Ereditato da Object) | |
MoveNext | Sposta l'enumeratore all'altro CachedDataItem in CachedDataItemCollection. | |
Reset | Imposta l'enumeratore alla posizione iniziale, ovvero prima del primo CachedDataItem nella raccolta. | |
ToString | Restituisce una stringa che rappresenta l'oggetto corrente. (Ereditato da Object) |
In alto
Implementazioni esplicite dell'interfaccia
Nome | Descrizione | |
---|---|---|
IEnumerator.Current | Per una descrizione del membro, vedere Current. | |
IDisposable.Dispose | Libera tutte le risorse utilizzate da CachedDataItemEnumerator. |
In alto
Note
Visual Basic e c# contengono ciascuno un'istruzione che nasconde la complessità degli enumeratori (foreach in c# e For Each in Visual Basic).Utilizzare l'istruzione appropriata per il linguaggio utilizzato, anziché direttamente la modifica dell'enumeratore.
Gli enumeratori possono essere utilizzati per leggere i dati nella raccolta, ma non possono essere utilizzati per modificare la raccolta sottostante.
Inizialmente, l'enumeratore verrà inserito prima del primo elemento nella raccolta.Reset il metodo inoltre l'enumeratore in questa posizione.In questa posizione, impostare Current la proprietà genera un'eccezione.Pertanto, è necessario chiamare MoveNext metodo corrispondenza del primo elemento della raccolta prima di leggere il valore di Current.
Current restituisce lo stesso oggetto fino peruna o l'altra MoveNext o Reset viene chiamato.MoveNext set Current all'elemento successivo.
se MoveNext passa la fine della raccolta, l'enumeratore verrà posizionato dopo l'ultimo elemento della raccolta e MoveNext restituisce false.Quando l'enumeratore si trova in questa posizione, chiamate successive a MoveNext anche restituiscono false.se l'ultima chiamata a MoveNext restituito false, chiamando Current genera un'eccezione.Impostare Current il primo elemento della raccolta inoltre, è possibile chiamare Reset seguito da MoveNext.
Un enumeratore rimane valido finché la raccolta rimane invariata.Se vengono apportate modifiche alla raccolta, ad esempio aggiungendo, modificando, o l'eliminazione di elementi, l'enumeratore verrà irrimediabilmente invalidato e la successiva chiamata a MoveNext o Reset generato InvalidOperationException.Se la raccolta viene modificata tra MoveNext e Current, Current restituisce l'elemento che il campo è impostato su, anche se l'enumeratore già viene invalidata.
L'enumeratore non ha accesso esclusivo alla raccolta; pertanto, enumerare una raccolta non è di per sé thread-safe.Anche se una raccolta è sincronizzata, altri thread possono ancora modificare la raccolta, causando l'enumeratore a generare un'eccezione.Per garantire che l'enumerazione sia thread-safe, è possibile bloccare la raccolta durante l'intera enumerazione o intercettare le eccezioni derivazione dalle modifiche apportate da altri thread.
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.