Condividi tramite


IDTSCustomPropertyCollection100.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

Restituisce

Oggetto Enumerator che può eseguire l'iterazione della raccolta di proprietà personalizzate.

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 è posizionato davanti al primo elemento della raccolta. La reimpostazione riporta anche l'enumeratore a questa posizione. In questa posizione, la chiamata a Current genera un'eccezione. Pertanto, è necessario chiamare MoveNext per far avanzare l'enumeratore al primo elemento della raccolta prima di leggere il valore di Current.

Current restituisce lo stesso oggetto fino a quando non viene chiamato MoveNext o Reset . MoveNext imposta Current sull'elemento successivo.

Dopo aver superato la fine della raccolta, l'enumeratore viene posizionato dopo l'ultimo elemento della raccolta e la chiamata a MoveNext restituisce false. Se l'ultima chiamata a MoveNext ha restituito false, la chiamata a Current genera un'eccezione. Per impostare di nuovo Current sul primo elemento della raccolta, è possibile chiamare Reset seguito da MoveNext.

Un enumeratore rimane valido finché la raccolta rimane invariata. Se vengono apportate modifiche alla raccolta, ad esempio l'aggiunta, la modifica o l'eliminazione di elementi, l'enumeratore viene invalidato in modo irreversibile e la chiamata successiva a MoveNext o Reset genera un'eccezione InvalidOperationException. Se la raccolta viene modificata tra MoveNext e Current, Current restituisce l'elemento su cui è impostato, anche se l'enumeratore è già invalidato.

L'enumeratore non dispone di accesso esclusivo alla raccolta. L'enumerazione di una raccolta non è quindi una procedura thread-safe. Anche se una raccolta è sincronizzata, è possibile che venga modificata da altri thread, con conseguente generazione di un'eccezione da parte dell'enumeratore. Per garantire la protezione dei thread durante l'enumerazione, è possibile bloccare la raccolta per l'intera enumerazione oppure intercettare le eccezioni determinate dalle modifiche apportate da altri thread.

Si applica a