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
Proprietà pubblica Current ottiene CachedDataItem la posizione corrente dell'enumeratore.

In alto

Metodi

  Nome Descrizione
Metodo pubblico Equals Determina se l'oggetto specificato equivale all'oggetto corrente. (Ereditato da Object)
Metodo pubblico GetHashCode Funge da funzione hash per un determinato tipo. (Ereditato da Object)
Metodo pubblico GetType Ottiene l'oggetto Type dell'istanza corrente. (Ereditato da Object)
Metodo pubblico MoveNext Sposta l'enumeratore all'altro CachedDataItem in CachedDataItemCollection.
Metodo pubblico Reset Imposta l'enumeratore alla posizione iniziale, ovvero prima del primo CachedDataItem nella raccolta.
Metodo pubblico ToString Restituisce una stringa che rappresenta l'oggetto corrente. (Ereditato da Object)

In alto

Implementazioni esplicite dell'interfaccia

  Nome Descrizione
Implementazione esplicita dell'interfacciaProprietà privata IEnumerator.Current Per una descrizione del membro, vedere Current.
Implementazione esplicita dell'interfacciaMetodo privato 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.

Vedere anche

Riferimenti

Spazio dei nomi Microsoft.VisualStudio.Tools.Applications