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