Partilhar via


Classe CachedDataItemEnumerator

Itera por meio de um CachedDataItemCollection.

Hierarquia de herança

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

Namespace:  Microsoft.VisualStudio.Tools.Applications
Assembly:  Microsoft.VisualStudio.Tools.Applications.ServerDocument (em Microsoft.VisualStudio.Tools.Applications.ServerDocument.dll)

Sintaxe

'Declaração
<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

O tipo CachedDataItemEnumerator expõe os membros a seguir.

Propriedades

  Nome Descrição
Propriedade pública Current Obtém o CachedDataItem na posição atual do enumerador.

Início

Métodos

  Nome Descrição
Método público Equals Determina se o especificado Object é igual a atual Object. (Herdado de Object.)
Método protegido Finalize Permite que um objeto tentar liberar recursos e executar outras operações de limpeza antes que ele é recuperado pela coleta de lixo. (Herdado de Object.)
Método público GetHashCode Serves as a hash function for a particular type. (Herdado de Object.)
Método público GetType Obtém o Type da instância atual. (Herdado de Object.)
Método protegido MemberwiseClone Cria uma cópia superficial do atual Object. (Herdado de Object.)
Método público MoveNext Avança o enumerador para o próximo CachedDataItem na CachedDataItemCollection.
Método público Reset Define o enumerador para sua posição inicial, que é antes do primeiro CachedDataItem na coleção.
Método público ToString Retorna um string que representa o objeto atual. (Herdado de Object.)

Início

Implementações explícitas da interface

  Nome Descrição
Implementação explícita da interfacePropriedade particular IEnumerator.Current Para obter uma descrição desse membro, consulte Current.
Implementação explícita da interfaceMétodo particular IDisposable.Dispose Libera todos os recursos usados pela CachedDataItemEnumerator.

Início

Comentários

Visual Basic e C# cada conter uma instrução que oculta a complexidade dos enumeradores (foreach em C# e For Each em Visual Basic). Use a instrução apropriada para o idioma que você estiver usando, em vez de manipular diretamente o enumerador.

Enumeradores podem ser usados para ler os dados na coleção, mas eles não podem ser usados para modificar a coleção subjacente.

Initially, the enumerator is positioned before the first element in the collection. O Reset método também traz o enumerador voltar para essa posição. Nesta posição, definindo a Current propriedade lança uma exceção. Portanto, você deve chamar o MoveNext método para avançar o enumerador para o primeiro elemento da coleção antes de ler o valor de Current.

CurrentRetorna o mesmo objeto até MoveNext ou Reset é chamado. MoveNextDefine Current para o próximo elemento.

Se MoveNext passa o final da coleção, o enumerador está posicionado após o último elemento na coleção e MoveNext retorna false. Quando o enumerador está nessa posição, chamadas subseqüentes para MoveNext também retornar false. Se a última chamada para MoveNext retornou false, chamando Current lança uma exceção. Para definir Current para o primeiro elemento da coleção novamente, você pode chamar Reset seguido de MoveNext.

An enumerator remains valid as long as the collection remains unchanged. Se forem feitas alterações da coleção, como adicionar, modificar, ou excluir elementos, o enumerador é irrecoverably invalidado e a próxima chamada para MoveNext ou Reset lança um InvalidOperationException. Se a coleção é modificada entre MoveNext e Current, Current retorna o elemento que ele está definido, mesmo se o enumerador já é invalidado.

O enumerador não tem acesso exclusivo à coleção; Portanto, enumerando através de uma coleção intrinsecamente não é um procedimento de thread-safe. Even when a collection is synchronized, other threads can still modify the collection, which causes the enumerator to throw an exception. To guarantee thread safety during enumeration, you can either lock the collection during the entire enumeration or catch the exceptions resulting from changes made by other threads.

Acesso thread-safe

Quaisquer membros static (Shared no Visual Basic) públicos deste tipo são thread-safe. Não há garantia de que qualquer membro de instância seja thread-safe.

Consulte também

Referência

Namespace Microsoft.VisualStudio.Tools.Applications