IDTSPathCollection100.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 por uma IDTSPathCollection100.
public:
System::Collections::IEnumerator ^ GetEnumerator();
[System.Runtime.InteropServices.DispId(-4)]
public System.Collections.IEnumerator GetEnumerator ();
[<System.Runtime.InteropServices.DispId(-4)>]
abstract member GetEnumerator : unit -> System.Collections.IEnumerator
Public Function GetEnumerator () As IEnumerator
Retornos
Retorna um IEnumerator usado para iterar a coleção.
Implementações
- Atributos
Comentários
Os enumeradores permitem apenas a leitura dos dados na coleção. Enumeradores não podem ser usados para modificar a coleção subjacente.
Inicialmente, 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 à coleção, como adicionar, modificar ou excluir elementos, o enumerador é invalidado de maneira irrecuperável e a próxima chamada para MoveNext
ou Reset
lança uma InvalidOperationException
. Se a coleção for modificada entre MoveNext
e Current
, Current
retornará o elemento ao 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 está sincronizada, outros threads ainda podem modificar a coleção, o que faz o enumerador lançar 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.