Model3DCollection.GetEnumerator Metoda

Definice

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

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

Návraty

Model3DCollection.Enumerator

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

Poznámky

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

Zpočátku je enumerátor umístěn před první položkou v kolekci. Volání v této pozici Current vyvolá výjimku. Proto je nutné před přečtením hodnoty Current volat MoveNext výčtový výčet na první položku kolekce.

Funkce Current vrátí stejný objekt, dokud není volán buď MoveNext, nebo Reset je volán. Funkce MoveNext nastaví aktuální 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í funkce MoveNext vrátilo hodnotu false, vyvolá volání Current výjimku. Chcete-li znovu nastavit Aktuální na první položku kolekce, můžete volat Reset následovaný MoveNext.

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

Enumerátor nemá výhradní přístup k kolekci; výčtem kolekce tedy není vnitřně bezpečný postup pro vlákno. I když je kolekce synchronizovaná, ostatní vlákna můžou i nadále upravovat kolekci, což způsobí, že výčtový modul 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