ActivityCollection.GetEnumerator Metódus
Definíció
Fontos
Egyes információk olyan, kiadás előtti termékekre vonatkoznak, amelyek a kiadásig még jelentősen módosulhatnak. A Microsoft nem vállal kifejezett vagy törvényi garanciát az itt megjelenő információért.
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.