ActivityCollection.GetEnumerator Metoda
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Implementuje rozhraní výčtu ICollectiondo .
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)
Návraty
Enumerátor, který může iterovat instanci ReadOnlyCollectionBase .
Implementuje
Poznámky
Enumerátory umožňují čtení dat v kolekci pouze. K úpravě podkladové kolekce nelze použít výčty.
Začněme tím, že enumerátor se umístí před první prvek v kolekci. Reset také vrátí enumerátor zpět na tuto pozici. Volání v této pozici Current vyvolá výjimku. Proto je nutné předčíst MoveNext výčet na první prvek kolekce před přečtením hodnoty .Current
Current vrátí stejný objekt, dokud není volána MoveNext nebo Reset není volána. MoveNext nastaví Current na další prvek.
Po předání konce kolekce se enumerátor umístí za poslední prvek v kolekci a volání MoveNext vrátí false
. Pokud se vrátí poslední volání MoveNext false
, volání Current vyvolá výjimku.
Chcete-li nastavit Current
na první prvek kolekce znovu, můžete volat Reset
následovaný MoveNext.
Enumerátor zůstane platný, dokud kolekce zůstane beze změny. Pokud jsou v kolekci provedeny změny, jako je přidání, úprava nebo odstranění prvků, enumerátor je nevratně neplatný a další volání nebo MoveNext Reset
vyvolá InvalidOperationException . Pokud je kolekce změněna mezi MoveNext a Current, Current vrátí prvek, na který je nastaven, i když je výčet již neplatný.
Enumerátor nemá výhradní přístup k kolekci; výčtem kolekce tedy není vnitřně bezpečný postup pro vlákno. I když je kolekce synchronizovaná, můžou ostatní vlákna i nadále upravovat kolekci. To způsobí, že enumerátor vyvolá výjimku. K zaručení bezpečnosti přístupu z více vláken můžete buďto zamknout kolekci na celou dobu práce s výčtem, nebo zachycovat výjimky vzniklé v důsledku změn prováděných ostatními vlákny.