ActivityCollection.GetEnumerator Metoda
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Implementuje interfejs wyliczenia do elementu 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)
Zwraca
Moduł wyliczający, który może iterować po wystąpieniu ReadOnlyCollectionBase .
Implementuje
Uwagi
Moduły wyliczające umożliwiają tylko odczytywanie danych w kolekcji. Nie można używać modułów wyliczania do modyfikowania podstawowej kolekcji.
Aby rozpocząć, moduł wyliczający jest umieszczony przed pierwszym elementem w kolekcji. Reset powoduje również powrót modułu wyliczającego do tej pozycji. Na tym stanowisku wywołanie Current wywołuje wyjątek. W związku z tym należy wywołać metodę MoveNext , aby przejść do pierwszego elementu kolekcji przed odczytaniem wartości Current.
Current Metoda zwraca ten sam obiekt do momentu wywołania metody MoveNext lub Reset . MoveNext ustawia Current element na następny.
Po przekazaniu końca kolekcji moduł wyliczający jest umieszczony po ostatnim elemecie w kolekcji, a wywołanie MoveNext metody zwraca wartość false
. Jeśli ostatnie wywołanie metody MoveNext zwracane false
, wywołanie Current wywołania zgłasza wyjątek.
Aby ponownie ustawić Current
element na pierwszy element kolekcji, możesz wywołać Reset
metodę , a następnie .MoveNext
Moduł wyliczający zachowuje ważność tak długo, jak długo kolekcja pozostaje niezmieniona. Jeśli w kolekcji zostaną wprowadzone zmiany, takie jak dodawanie, modyfikowanie lub usuwanie elementów, moduł wyliczający jest nieodwracalnie unieważniany, a następne wywołanie MoveNext lub Reset
wywołanie InvalidOperationException metody . Jeśli kolekcja jest modyfikowana między elementami MoveNext i Current, Current zwróci element ustawiony na , nawet jeśli moduł wyliczający jest już unieważniony.
Moduł wyliczający nie ma wyłącznego dostępu do kolekcji, w związku z tym wyliczanie w kolekcji nie jest wewnętrznie procedurą odporną na wielowątkowość. Nawet w przypadku synchronizacji kolekcji inne wątki nadal mogą modyfikować kolekcję. Powoduje to zgłaszanie wyjątku przez moduł wyliczający. Aby zagwarantować bezpieczeństwo wątków podczas wyliczania, można zablokować kolekcję podczas całego procesu wyliczania albo rejestrować wyjątki wynikłe ze zmian wprowadzanych przez inne wątków.