ObjectKeyFrameCollection.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í.
Vrátí enumerátor, který může iterovat kolekcí.
public:
virtual System::Collections::IEnumerator ^ GetEnumerator();
public System.Collections.IEnumerator GetEnumerator();
abstract member GetEnumerator : unit -> System.Collections.IEnumerator
override this.GetEnumerator : unit -> System.Collections.IEnumerator
Public Function GetEnumerator () As IEnumerator
Návraty
Objekt IEnumerator , který může iterovat kolekcí.
Implementuje
Poznámky
Enumerátory umožňují čtení pouze dat v kolekci. Enumerátory nelze použít k úpravě podkladové kolekce.
Na začátku je enumerátor umístěn před první položkou v kolekci. Reset také vrátí enumerátor zpět do této pozice. Volání na této pozici Current vyvolá výjimku. Proto je nutné volat MoveNext , aby se enumerátor před přečtením hodnoty Current.
Current vrátí stejný objekt, dokud se nevolá MoveNext nebo Reset nevolá. MoveNext nastaví Current na další položku.
Po předání konce kolekce je enumerátor umístěn za poslední položkou v kolekci a volání MoveNext vrátí false. Pokud se vrátí poslední volání MoveNextfalse, vyvolá volání Current výjimku. Pokud chcete znovu nastavit Current první položku kolekce, můžete zavolat a Resetvolat MoveNext .
Enumerátor zůstane platný, dokud kolekce zůstane beze změny. Pokud jsou v kolekci provedeny změny, například přidávání, úpravy nebo odstraňování položek, enumerátor je nenávratně neplatný a další volání MoveNext nebo Reset vyvolá InvalidOperationExceptionvýjimku . Pokud je kolekce změněna mezi MoveNext a Current, Current vrátí položku, na kterou je nastavena, i když je enumerátor již neplatný.
Enumerátor nemá výhradní přístup k kolekci; proto výčet prostřednictvím kolekce není vnitřně bezpečným postupem pro přístup z více vláken. I když je kolekce synchronizována, ostatní vlákna mohou stále upravovat kolekci, což způsobí, že enumerátor vyvolá výjimku. Chcete-li zaručit bezpečnost vláken během výčtu, můžete buď uzamknout kolekci během celého výčtu, nebo zachytit výjimky vyplývající z změn provedených jinými vlákny.