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


CachedDataItemEnumerator - класс

Выполняет итерацию коллекции CachedDataItemCollection.

Иерархия наследования

System.Object
  Microsoft.VisualStudio.Tools.Applications.CachedDataItemEnumerator

Пространство имен:  Microsoft.VisualStudio.Tools.Applications
Сборка:  Microsoft.VisualStudio.Tools.Applications.ServerDocument (в Microsoft.VisualStudio.Tools.Applications.ServerDocument.dll)

Синтаксис

'Декларация
<PermissionSetAttribute(SecurityAction.Demand, Name := "FullTrust")> _
Public NotInheritable Class CachedDataItemEnumerator _
    Implements IEnumerator(Of CachedDataItem), IDisposable,  _
    IEnumerator
[PermissionSetAttribute(SecurityAction.Demand, Name = "FullTrust")]
public sealed class CachedDataItemEnumerator : IEnumerator<CachedDataItem>, 
    IDisposable, IEnumerator

Тип CachedDataItemEnumerator предоставляет следующие члены.

Свойства

  Имя Описание
Открытое свойство Current Возвращает CachedDataItem в текущем положении перечислителя.

В начало страницы

Методы

  Имя Описание
Открытый метод Equals Определяет, равен ли заданный объект Object текущему объекту Object. (Унаследовано от Object.)
Защищенный метод Finalize Позволяет объекту попытаться освободить ресурсы и выполнить другие операции очистки, перед тем как объект будет утилизирован в процессе сборки мусора. (Унаследовано от Object.)
Открытый метод GetHashCode Играет роль хэш-функции для определенного типа. (Унаследовано от Object.)
Открытый метод GetType Возвращает объект Type для текущего экземпляра. (Унаследовано от Object.)
Защищенный метод MemberwiseClone Создает неполную копию текущего объекта Object. (Унаследовано от Object.)
Открытый метод MoveNext Перемещает перечислитель к следующему CachedDataItem в CachedDataItemCollection.
Открытый метод Reset Устанавливает перечислитель в его начальное положение, перед первым элементом коллекции CachedDataItem.
Открытый метод ToString Возвращение строки, представляющей текущий объект. (Унаследовано от Object.)

В начало страницы

Явные реализации интерфейса

  Имя Описание
Явная реализация интерфейсаЗакрытое свойство IEnumerator.Current Описание этого члена см. в разделе Current.
Явная реализация интерфейсаЗакрытый метод IDisposable.Dispose Освобождение всех ресурсов, используемых объектом CachedDataItemEnumerator.

В начало страницы

Заметки

Оператор foreach языка C# (For Each в Visual Basic) скрывает сложности использования перечислителей. Рекомендуется вместо непосредственного применения перечислителя использовать соответствующий для конкретного языка оператор.

Перечислители могут использоваться для чтения данных коллекции; они не могут использоваться для изменения коллекции.

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

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

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

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

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

Потокобезопасность

Любые открытые члены этого типа, объявленные как static (Shared в Visual Basic), являются потокобезопасными. Потокобезопасность членов экземпляров не гарантируется.

См. также

Ссылки

Microsoft.VisualStudio.Tools.Applications - пространство имен