Vector3DCollection.GetEnumerator Metoda

Definice

Vrátí enumerátor, který může iterovat v rámci kolekce.

public:
 System::Windows::Media::Media3D::Vector3DCollection::Enumerator GetEnumerator();
public System.Windows.Media.Media3D.Vector3DCollection.Enumerator GetEnumerator ();
member this.GetEnumerator : unit -> System.Windows.Media.Media3D.Vector3DCollection.Enumerator
Public Function GetEnumerator () As Vector3DCollection.Enumerator

Návraty

Enumerátor, který může iterovat kolekcí.

Poznámky

Enumerátory umožňují pouze čtení dat v kolekci. Enumerátory nelze použít k úpravě podkladové kolekce.

Zpočátku je enumerátor umístěn před první položkou v kolekci. V této pozici vyvolá volání Current výjimku. Proto je nutné volat MoveNext , aby se před čtením hodnoty Current vyčíslil enumerátor na první položku kolekce.

Funkce Current vrátí stejný objekt, dokud není volán buď MoveNext, nebo Reset . MoveNext nastaví Current na další položku.

Po předání konce kolekce se enumerátor umístí za poslední položku v kolekci a volání MoveNext vrátí hodnotu false. Pokud poslední volání MoveNext vrátilo false, vyvolá volání Current výjimku. Chcete-li znovu nastavit Aktuální na první položku kolekce, můžete zavolat Reset následovaný MoveNext.

Enumerátor zůstane platný, dokud kolekce zůstane beze změny. Pokud jsou provedeny změny v kolekci, například přidání, úprava nebo odstranění položek, enumerátor je nenávratně zneplatněn a další volání MoveNext nebo Reset vyvolá InvalidOperationException. Pokud je kolekce změněna mezi MoveNext a Current, Current vrátí položku, na kterou je nastavena, i když je výčet již zneplatněn.

Enumerátor nemá výhradní přístup ke kolekci. proto výčet prostřednictvím kolekce není vnitřně procedurou bezpečnou pro přístup z více vláken. I když je kolekce synchronizována, ostatní vlákna můžou kolekci stále upravovat, což 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.

Platí pro