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 | |
---|---|---|
Current | Obtém o CachedDataItem na posição atual do enumerador. |
Superior
Métodos
Nome | Descrição | |
---|---|---|
Equals | Determina se o objeto especificado é igual ao objeto atual. (Herdado de Object.) | |
GetHashCode | Serve como uma função de hash para um tipo específico. (Herdado de Object.) | |
GetType | Obtém Type da instância atual. (Herdado de Object.) | |
MoveNext | Avança o enumerador para o próximo CachedDataItem na CachedDataItemCollection. | |
Reset | Define o enumerador para sua posição inicial, que é antes do primeiro CachedDataItem na coleção. | |
ToString | Retorna uma cadeia de caracteres que representa o objeto atual. (Herdado de Object.) |
Superior
Implementações explícitas da interface
Nome | Descrição | |
---|---|---|
IEnumerator.Current | Para obter uma descrição desse membro, consulte Current. | |
IDisposable.Dispose | Libera todos os recursos usados pela CachedDataItemEnumerator. |
Superior
Comentários
Visual Basic e C# cada contenham 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.
Inicialmente, o enumerador está posicionado antes do primeiro elemento na coleção.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, chamada Current lança uma exceção.Para definir Current para o primeiro elemento da coleção novamente, você pode chamar Reset seguido de MoveNext.
Um enumerador permanece válido, desde que a coleção permaneça inalterada.Se houver alterações à coleção, tais 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.Mesmo quando uma coleção é sincronizada, outros Threads poderá ainda modificar a coleção, que faz com que o enumerador para gerar uma exceção.Para garantir segurança de segmentos durante enumeração, você pode bloquear a coleção durante a enumeração inteira ou pegar as exceções resultantes de alterações feitas por outros segmentos.
Acesso thread-safe
Quaisquer membros estático (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.