ActivityCollection.GetEnumerator Metódus

Definíció

Enumerálási felületet implementál a 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)

Válaszok

Egy enumerátor, amely át tudja haladni a példányt ReadOnlyCollectionBase .

Megvalósítás

Megjegyzések

Az enumerátorok csak a gyűjteményben lévő adatok olvasását engedélyezik. Az alapul szolgáló gyűjtemény enumerátorok használatával nem módosítható.

Első lépésként az enumerátor a gyűjtemény első eleme elé kerül. Reset visszahozza az enumerátort ebbe a pozícióba. Ebben a helyzetben a hívás Current kivételt képez. Ezért a gyűjtemény értékének olvasása előtt meg kell hívnia MoveNext , hogy az enumerátort a gyűjtemény első elemére irányozza Currentelő.

Current ugyanazt az objektumot adja vissza, amíg meg MoveNext nem hívja vagy Reset meghívja. MoveNext elemet a következő elemre állítja Current .

A gyűjtemény befejezése után az enumerátor a gyűjtemény utolsó eleme után lesz elhelyezve, és a hívás MoveNext eredménye.false Ha az utolsó visszaküldött MoveNextfalsehívás kivételt Current eredményez.

Ha ismét a gyűjtemény első elemére szeretne állítani Current , meghívhatja Reset a következőt MoveNext: .

Az enumerátorok mindaddig érvényesek maradnak, amíg a gyűjtemény nem változik. Ha módosításokat végez a gyűjteményen, például elemeket ad hozzá, módosít vagy töröl, az enumerátor visszavonhatatlanul érvénytelen lesz, és a következő hívás MoveNextResetInvalidOperationException egy . Ha a gyűjtemény módosítva van az és MoveNextközöttCurrent, Current akkor azt az elemet adja vissza, amelybe be van állítva, még akkor is, ha az enumerátor már érvénytelenítve van.

Az enumerátor nem rendelkezik kizárólagos hozzáféréssel a gyűjteményhez; ezért a gyűjteményen keresztüli számbavétel alapvetően nem szálbiztos eljárás. A gyűjtemény szinkronizálása esetén is más szálak módosíthatják a gyűjteményt. Emiatt az enumerátor kivételt okoz. Az enumerálás során a szálbiztonság garantálása érdekében zárolhatja a gyűjteményt a teljes enumerálás során, vagy elkaphatja a más szálak által végrehajtott módosításokból eredő kivételeket.

A következőre érvényes: