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 задает Current для следующего элемента.

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

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

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

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