IDTSRuntimeConnectionCollection100.GetEnumerator Metodo

Definizione

public:
 System::Collections::IEnumerator ^ GetEnumerator();
[System.Runtime.InteropServices.DispId(-4)]
public System.Collections.IEnumerator GetEnumerator();
[<System.Runtime.InteropServices.DispId(-4)>]
abstract member GetEnumerator : unit -> System.Collections.IEnumerator
Public Function GetEnumerator () As IEnumerator

Valori restituiti

Un enumeratore che può iterare attraverso un IDTSRuntimeConnectionCollection100.

Implementazioni

Attributi

Commenti

Gli enumeratori consentono solo la lettura dei dati nella raccolta. Non è possibile utilizzare enumeratori per modificare la raccolta sottostante.

Inizialmente, l'enumeratore viene posizionato prima del primo elemento della raccolta. Il reset riporta anche l'enumeratore a questa posizione. In questa posizione, chiamare Corrente fa un'eccezione. Pertanto, devi chiamare MoveNext per avanzare l'enumeratore al primo elemento della collezione prima di leggere il valore di Current.

Current restituisce lo stesso oggetto finché non viene chiamato MoveNext o Reset ( MoveNext o Reset ). MoveNext imposta Current sull'elemento successivo.

Dopo che la fine della collezione è passata, l'enumeratore viene posizionato dopo l'ultimo elemento della collezione e chiamare MoveNextrestituisce falso. Se l'ultima chiamata a MoveNext è stata falsa, chiamare Current lancia un'eccezione. Per impostare di nuovo Current come primo elemento della collezione, puoi chiamare Reset seguito da MoveNext.

Un enumeratore rimane valido finché la raccolta rimane invariata. Se vengono apportate modifiche alla collezione, come aggiungere, modificare o eliminare elementi, l'enumeratore viene invalidato irrimediabilmente e la chiamata successiva a MoveNext o Reset genera un'InvalidOperationException. Se la collezione viene modificata tra MoveNext e Current, Current restituisce l'elemento a cui è impostato, anche se l'enumeratore è già invalidato.

L'enumeratore non ha accesso esclusivo alla raccolta; pertanto, l'enumerazione tramite una raccolta non è intrinsecamente una procedura thread-safe. Anche quando una raccolta viene sincronizzata, altri thread possono comunque modificare la raccolta, causando la generazione di un'eccezione da parte dell'enumeratore. Per garantire la thread safety durante l'enumerazione, è possibile bloccare la raccolta durante l'intera enumerazione o intercettare le eccezioni risultanti dalle modifiche apportate da altri thread.

Si applica a