QuaternionKeyFrameCollection.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.
Retorna um enumerador que pode iterar pela coleção.
public:
virtual System::Collections::IEnumerator ^ GetEnumerator();
public System.Collections.IEnumerator GetEnumerator ();
abstract member GetEnumerator : unit -> System.Collections.IEnumerator
override this.GetEnumerator : unit -> System.Collections.IEnumerator
Public Function GetEnumerator () As IEnumerator
Retornos
Um IEnumerator que pode iterar pela coleção.
Implementações
Comentários
Os enumeradores só permitem ler os dados na coleção. Os enumeradores não podem ser usados para modificar a coleção subjacente.
Inicialmente, o enumerador é posicionado antes do primeiro item da coleção. Reset também traz o enumerador de volta para essa posição. Nessa posição, chamar Current gera uma exceção. Portanto, você deve chamar MoveNext para avançar o enumerador para o primeiro item da coleção antes de ler o valor de Current.
Current retorna o mesmo objeto até MoveNext ou Reset ser chamado. MoveNext define Current para o próximo item.
Depois que o final da coleção é passado, o enumerador é posicionado após o último item na coleção e a chamada MoveNext retorna false
. Se a última chamada para MoveNext retornada false
, a chamada Current gerará uma exceção. Para definir Current como o primeiro item da coleção novamente, você pode chamar Reset seguido por 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 itens, o enumerador será invalidado irrecuperavelmente e a próxima chamada para MoveNext ou Reset lançará um InvalidOperationException. Se a coleção for modificada entre MoveNext e Current, Current retornará o item para o qual 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, o que faz com que o enumerador gere 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.