IDTSOutputCollection100.GetEnumerator Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
public:
System::Collections::IEnumerator ^ GetEnumerator();
[System.Runtime.InteropServices.DispId(-4)]
public System.Collections.IEnumerator GetEnumerator ();
[<System.Runtime.InteropServices.DispId(-4)>]
abstract member GetEnumerator : unit -> System.Collections.IEnumerator
Public Function GetEnumerator () As IEnumerator
Возвращаемое значение
Возвращает IEnumerator , используемый для итерации по коллекции.
Реализации
- Атрибуты
Комментарии
Перечислители разрешают только чтение данных в коллекции. Перечислители нельзя использовать для изменения базовой коллекции.
Изначально перечислитель располагается перед первым элементом коллекции. Сброс также возвращает перечислитель в эту позицию. В этой позиции вызов Current создает исключение. Поэтому перед чтением значения Current необходимо вызвать MoveNext, чтобы переместить перечислитель к первому элементу коллекции.
Текущий возвращает тот же объект до вызова MoveNext или Reset . MoveNext задает Current для следующего элемента.
После прохождения конца коллекции перечислитель позиционируется после последнего элемента в коллекции, а вызов MoveNext возвращает значение false. Если последний вызов MoveNext вернул значение false, вызов Current создает исключение. Чтобы снова присвоить значение Current первому элементу коллекции, можно вызвать метод Reset , а затем MoveNext.
Перечислитель является допустимым до тех пор, пока коллекция остается неизменной. Если в коллекцию вносятся изменения, такие как добавление, изменение или удаление элементов, перечислитель становится недействительным, а следующий вызов MoveNext или Reset создает исключение InvalidOperationException. Если коллекция изменяется между MoveNext и Current, Current возвращает заданный элемент, даже если перечислитель уже недопустим.
У перечислителя нет эксклюзивного доступа к коллекции, поэтому перечисление коллекции не является потокобезопасной процедурой. Даже если коллекция синхронизирована, другие потоки могут ее изменить, что приведет к тому, что перечислитель создаст исключение. Для обеспечения потокобезопасности при перечислении можно либо заблокировать коллекцию на все время перечисления, либо перехватывать исключения, возникающие в результате изменений, внесенных другими потоками.