Transform3DCollection.GetEnumerator Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Возвращает перечислитель, который может выполнять итерации по коллекции.
public:
System::Windows::Media::Media3D::Transform3DCollection::Enumerator GetEnumerator();
public System.Windows.Media.Media3D.Transform3DCollection.Enumerator GetEnumerator ();
member this.GetEnumerator : unit -> System.Windows.Media.Media3D.Transform3DCollection.Enumerator
Public Function GetEnumerator () As Transform3DCollection.Enumerator
Возвращаемое значение
Перечислитель, который может выполнять итерацию коллекции.
Комментарии
Перечислители разрешают только чтение данных в коллекции. Перечислители нельзя использовать для изменения базовой коллекции.
Изначально перечислитель позиционируется перед первым элементом в коллекции. Метод также переводит перечислитель в эту позицию. В этой позиции вызов Current создает исключение. Поэтому перед чтением значения Current необходимо вызвать MoveNext перечислитель к первому элементу коллекции.
Текущий возвращает тот же объект, пока не будет вызван MoveNext или Reset не будет вызван. MoveNext задает текущее значение для следующего элемента.
После прохождения конца коллекции перечислитель позиционируется после последнего элемента в коллекции, а вызов MoveNext возвращает значение false. Если последний вызов MoveNext вернул значение false, вызов Current создает исключение. Чтобы снова задать значение Current для первого элемента коллекции, можно вызвать метод Reset, за которым следует MoveNext.
Перечислитель является допустимым до тех пор, пока коллекция остается неизменной. Если в коллекцию вносятся изменения, такие как добавление, изменение или удаление элементов, перечислитель становится недействительным, а следующий вызов MoveNext или Reset вызывает исключение InvalidOperationException. Если коллекция изменяется между MoveNext и Current, current вернет элемент, которому он задан, даже если перечислитель уже недопустим.
У перечислителя нет эксклюзивного доступа к коллекции, поэтому перечисление коллекции не является потокобезопасной процедурой. Даже при синхронизации коллекции другие потоки по-прежнему могут изменять коллекцию, что приводит к возникновению исключения перечислителем. Для обеспечения потокобезопасности при перечислении можно либо заблокировать коллекцию на все время перечисления, либо перехватывать исключения, возникающие в результате изменений, внесенных другими потоками.