Condividi tramite


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 l'oggetto CachedDataItem in corrispondenza della posizione corrente dell'enumeratore.

In alto

Metodi

  Nome Descrizione
Metodo pubblico Equals Determina se l'oggetto Object specificato è uguale all'oggetto Object corrente. (Ereditato da Object)
Metodo protetto Finalize Consente a un oggetto di provare a liberare risorse ed eseguire altre operazioni di pulitura prima che l'oggetto stesso venga recuperato dalla procedura di Garbage Collection. (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 protetto MemberwiseClone Consente di creare una copia dei riferimenti dell'oggetto Object corrente. (Ereditato da Object)
Metodo pubblico MoveNext Consente di spostare l'enumeratore alla successiva occorrenza di CachedDataItem nell'oggetto CachedDataItemCollection.
Metodo pubblico Reset Imposta la posizione iniziale dell'enumeratore, ovvero prima della prima occorrenza di CachedDataItem nell'insieme.
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 di questo membro, vedere Current.
Implementazione esplicita dell'interfacciaMetodo privato IDisposable.Dispose Rilascia tutte le risorse utilizzate dall'oggetto CachedDataItemEnumerator.

In alto

Note

In Visual Basic e C# è disponibile un'istruzione che consente di nascondere la complessità degli enumeratori (foreach in C# e For Each in Visual Basic). Utilizzare l'istruzione appropriata per il linguaggio in uso, anziché modificare direttamente l'enumeratore.

È possibile utilizzare enumeratori per leggere i dati nell'insieme, ma non per modificare l'insieme sottostante.

Inizialmente, l'enumeratore è posizionato prima del primo elemento nell'insieme. Il metodo Reset riporta inoltre l'enumeratore in questa posizione. In tale posizione, l'impostazione della proprietà Current genera un'eccezione. Pertanto, prima di leggere il valore della proprietà Current, è necessario chiamare il metodo MoveNext per spostare in avanti l'enumeratore in corrispondenza del primo elemento dell'insieme.

Current restituisce lo stesso oggetto fino alla chiamata di MoveNext o Reset. MoveNext imposta Current sull'elemento successivo.

Se il metodo MoveNext raggiunge la fine dell'insieme, l'enumeratore viene posizionato dopo l'ultimo elemento dell'insieme e il metodo MoveNext restituisce false. Quando l'enumeratore si trova in questa posizione, anche le successive chiamate al metodo MoveNext restituiscono false. Se il valore restituito dall'ultima chiamata al metodo MoveNext è false, chiamando Current verrà generata un'eccezione. Per impostare nuovamente Current sul primo elemento dell'insieme, è possibile chiamare Reset, quindi MoveNext.

Un enumeratore rimane valido se non vengono apportate modifiche all'insieme. Se l'insieme viene modificato, ad esempio aggiungendo, modificando o eliminando elementi, l'enumeratore verrà irrimediabilmente invalidato e la chiamata successiva a MoveNext o Reset genererà un oggetto InvalidOperationException. Se l'insieme viene modificato tra MoveNext e Current, Current restituirà l'elemento su cui è impostato, anche se l'enumeratore è ancora invalidato.

L'enumeratore non dispone di accesso esclusivo all'insieme, pertanto il processo di enumerazione di un insieme non è di per sé thread-safe. Anche se un insieme è sincronizzato, è possibile che venga modificato da altri thread, con conseguente generazione di un'eccezione da parte dell'enumeratore. Per garantire la thread safety durante l'enumerazione, è possibile bloccare l'insieme per l'intera enumerazione oppure intercettare le eccezioni determinate 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