Поделиться через


QuaternionKeyFrameCollection.GetEnumerator Метод

Определение

Возвращает перечислитель, который может выполнять итерации по коллекции.

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

Возвращаемое значение

IEnumerator, который служит для прохода по коллекции.

Реализации

Комментарии

Перечислители разрешают только чтение данных в коллекции. Перечислители нельзя использовать для изменения базовой коллекции.

Изначально перечислитель располагается перед первым элементом в коллекции. Метод Reset также переводит перечислитель в эту позицию. В этой позиции вызов Current вызывает исключение. Поэтому необходимо вызвать метод MoveNext , чтобы перейти перечислитель к первому элементу коллекции, прежде чем считывать значение Current.

Current возвращает тот же объект, пока не будет вызван метод MoveNext или Reset. MoveNext задает Current для следующего элемента.

После того как конец коллекции передан, перечислитель позиционируется после последнего элемента в коллекции, и вызов MoveNext возвращает false. Если последний вызов MoveNext возвращал false, вызов Current вызывает исключение. Чтобы снова задать Current для первого элемента коллекции, можно вызвать Reset метод MoveNext.

Перечислитель является допустимым до тех пор, пока коллекция остается неизменной. Если в коллекцию вносятся изменения, такие как добавление, изменение или удаление элементов, перечислитель становится безвозвратно недействительным и следующий вызов MoveNext или Reset вызывает исключение InvalidOperationException. Если коллекция изменяется между MoveNext и Current, Current возвращает элемент, которому ей присвоено значение, даже если перечислитель уже признан недействительным.

У перечислителя нет эксклюзивного доступа к коллекции, поэтому перечисление коллекции не является потокобезопасной процедурой. Даже при синхронизации коллекции другие потоки по-прежнему могут изменять коллекцию, что приводит к тому, что перечислитель создает исключение. Для обеспечения потокобезопасности при перечислении можно либо заблокировать коллекцию на все время перечисления, либо перехватывать исключения, возникающие в результате изменений, внесенных другими потоками.

Применяется к