ActivityCollection.GetEnumerator Método
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Implementa uma interface de enumeração para o ICollection.
public:
System::Collections::Generic::IEnumerator<System::Workflow::ComponentModel::Activity ^> ^ GetEnumerator();
public System.Collections.Generic.IEnumerator<System.Workflow.ComponentModel.Activity> GetEnumerator ();
override this.GetEnumerator : unit -> System.Collections.Generic.IEnumerator<System.Workflow.ComponentModel.Activity>
Public Function GetEnumerator () As IEnumerator(Of Activity)
Retornos
Um enumerador que pode ser iterado por meio da instância ReadOnlyCollectionBase.
Implementações
Comentários
Os enumeradores habilitam apenas a leitura dos dados na coleção. Você não pode usar enumeradores para modificar a coleção subjacente.
Para começar, o enumerador é posicionado antes do primeiro elemento da coleção. Reset também traz o enumerador de volta para essa posição. Nessa posição, a chamada Current gera uma exceção. Por isso, você deve chamar MoveNext para avançar o enumerador até o primeiro elemento da coleção antes de ler o valor de Current.
Current retorna o mesmo objeto até MoveNext ou Reset ser chamado. MoveNext define Current como o próximo elemento.
Depois que o final da coleção é passado, o enumerador é posicionado após o último elemento na coleção e a chamada MoveNext retorna false
. Se a última chamada a ser MoveNext retornada false
, a chamada Current gerará uma exceção.
Para definir Current
como o primeiro elemento da coleção novamente, é possível chamar Reset
seguido de MoveNext.
Um enumerador permanece válido desde que a coleção permaneça inalterada. Se forem feitas alterações na coleção, como adicionar, modificar ou excluir elementos, o enumerador será invalidado irreversivelmente e a próxima chamada para MoveNext ou Reset
gerará um InvalidOperationException . Se a coleção for modificada entre MoveNext e Current, Current retornará o elemento para o qual ela está definida, mesmo que o enumerador já esteja invalidado.
O enumerador não tem acesso exclusivo à coleção; por isso, a enumeração por meio de uma coleção não é um procedimento thread-safe intrínseco. Mesmo quando uma coleção é sincronizada, outros threads ainda podem modificar a coleção. Isso faz com que o enumerador crie uma exceção. Para garantir thread-safe durante a enumeração, é possível bloquear a coleção durante toda a enumeração ou verificar as exceções resultantes das alterações feitas por outros threads.