MaterialCollection.GetEnumerator Methode

Definition

Gibt einen Enumerator zurück, der die Auflistung durchlaufen kann.

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

Gibt zurück

Ein Enumerator, der die Auflistung durchlaufen kann.

Hinweise

Enumeratoren ermöglichen nur das Lesen der Daten in der Sammlung. Enumeratoren können nicht verwendet werden, um die zugrunde liegende Auflistung zu ändern.

Zunächst wird der Enumerator vor dem ersten Element in der Auflistung positioniert. An dieser Position löst der Aufruf Current eine Ausnahme aus. Daher müssen Sie aufrufen MoveNext , um den Enumerator auf das erste Element der Auflistung vor dem Lesen des Werts von Current zu weiterentwickeln.

Current gibt dasselbe Objekt zurück, bis entweder MoveNext oder Reset aufgerufen wird. MoveNext legt Current auf das nächste Element fest.

Nachdem das Ende der Auflistung übergeben wurde, wird der Enumerator nach dem letzten Element in der Auflistung positioniert, und beim Aufrufen von MoveNext wird false zurückgegeben. Wenn der letzte Aufruf von MoveNext false zurückgegeben hat, löst der Aufruf von Current eine Ausnahme aus. Wenn Sie Current erneut auf das erste Element der Auflistung festlegen möchten, können Sie Reset aufrufen, gefolgt von MoveNext.

Ein Enumerator bleibt gültig, solange die Auflistung unverändert bleibt. Wenn Änderungen an der Auflistung vorgenommen werden, z. B. das Hinzufügen, Ändern oder Löschen von Elementen, wird der Enumerator unwiederbringlich ungültig, und der nächste Aufruf von MoveNext oder Reset löst eine InvalidOperationException aus. Wenn die Auflistung zwischen MoveNext und Current geändert wird, gibt Current das Element zurück, auf das sie festgelegt ist, auch wenn der Enumerator bereits ungültig ist.

Der Enumerator hat keinen exklusiven Zugriff auf die Auflistung; daher ist die Enumeration einer Auflistung systembedingt kein threadsicheres Verfahren. Selbst wenn eine Sammlung synchronisiert wird, können andere Threads die Auflistung noch ändern, was dazu führt, dass der Enumerator eine Ausnahme auslöst. Um während der Enumeration Threadsicherheit zu gewährleisten, können Sie entweder die Auflistung während der gesamten Enumeration sperren oder die Ausnahmen, die aus von anderen Threads stammenden Änderungen resultieren, abfangen.

Gilt für: