ActivityCollection.GetEnumerator Metodo

Definizione

Implementa un’interfaccia di enumerazione su ICollection.

public:
 System::Collections::Generic::IEnumerator<System::Workflow::ComponentModel::Activity ^> ^ GetEnumerator();
public System.Collections.Generic.IEnumerator<System.Workflow.ComponentModel.Activity> GetEnumerator ();
override this.GetEnumerator : unit -> System.Collections.Generic.IEnumerator<System.Workflow.ComponentModel.Activity>
Public Function GetEnumerator () As IEnumerator(Of Activity)

Restituisce

IEnumerator<Activity>

Enumeratore che consente di scorrere l'istanza di ReadOnlyCollectionBase.

Implementazioni

Commenti

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

Per iniziare, l'enumeratore è posizionato prima del primo elemento nella raccolta. Anche il metodo Reset riporta l'enumeratore in questa posizione. Se la proprietà Current viene chiamata in questa posizione, sarà generata un'eccezione. Pertanto, è necessario chiamare il metodo MoveNext per spostare in avanti l'enumeratore, in corrispondenza del primo elemento della raccolta, prima di leggere il valore di Current.

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

Una volta raggiunta la fine della raccolta, l'enumeratore sarà posizionato dopo l'ultimo elemento, pertanto la chiamata al metodo MoveNext restituisce false. Se il valore restituito dall'ultima chiamata al metodo MoveNext è false, chiamando Current verrà generata un'eccezione.

Per impostare nuovamente la proprietà Current sul primo elemento della raccolta, è possibile chiamare il metodo Reset seguito da MoveNext.

Un enumeratore rimane valido finché la raccolta rimane invariata. Se vengono apportate modifiche alla raccolta, quali aggiunte, modifiche o eliminazioni di elementi, l'enumeratore verrà invalidato in modo irreversibile e alla successiva chiamata a MoveNext oppure a Reset verrà generata una classe InvalidOperationException. Se la raccolta viene modificata tra la chiamata del metodo MoveNext e la proprietà Current, la proprietà Current restituirà l'elemento su cui è stata impostata, anche se l'enumeratore risulta 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, altri thread potrebbero modificare la raccolta. Per questo motivo, l'enumeratore genera un'eccezione. 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