DrawingCollection.GetEnumerator Metodo
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Restituisce un enumeratore in grado di eseguire l'iterazione nella raccolta.
public:
System::Windows::Media::DrawingCollection::Enumerator GetEnumerator();
public System.Windows.Media.DrawingCollection.Enumerator GetEnumerator ();
member this.GetEnumerator : unit -> System.Windows.Media.DrawingCollection.Enumerator
Public Function GetEnumerator () As DrawingCollection.Enumerator
Restituisce
Enumeratore in grado di scorrere l'insieme.
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. In questa posizione, la chiamata 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 finché non viene chiamato il metodo MoveNext o Reset. MoveNext imposta Current sull'elemento successivo.
Al termine della raccolta, l'enumeratore viene posizionato dopo l'ultimo elemento della raccolta e la chiamata MoveNext restituisce false
. Se l'ultima chiamata a MoveNext restituisce false
, la chiamata Current genera un'eccezione. Per impostare Current di nuovo 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 restituirà 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 quando una raccolta è sincronizzata, altri thread potrebbero comunque modificare la raccolta, causando la 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.