Classe CachedDataHostItemEnumerator
Itera por meio de um CachedDataHostItemCollection.
Hierarquia de herança
System.Object
Microsoft.VisualStudio.Tools.Applications.CachedDataHostItemEnumerator
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 CachedDataHostItemEnumerator _
Implements IEnumerator(Of CachedDataHostItem), IDisposable, _
IEnumerator
[PermissionSetAttribute(SecurityAction.Demand, Name = "FullTrust")]
public sealed class CachedDataHostItemEnumerator : IEnumerator<CachedDataHostItem>,
IDisposable, IEnumerator
O tipo CachedDataHostItemEnumerator expõe os membros a seguir.
Propriedades
Nome | Descrição | |
---|---|---|
Current | Obtém o CachedDataHostItem 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 a função de hash padrão. (Herdado de Object.) | |
GetType | Obtém Type da instância atual. (Herdado de Object.) | |
MoveNext | Avança o enumerador para o próximo CachedDataHostItem na CachedDataHostItemCollection. | |
Reset | Define o enumerador para sua posição inicial, que é antes do primeiro CachedDataHostItem 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 CachedDataHostItemEnumerator. |
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.