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 - пространство имен