ReadOnlySpan<T>.Enumerator Estrutura
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
Fornece um enumerador para os elementos de um ReadOnlySpan<T>.
public: value class ReadOnlySpan<T>::Enumerator
public ref struct ReadOnlySpan<T>.Enumerator
type ReadOnlySpan<'T>.Enumerator = struct
Public Structure ReadOnlySpan(Of T).Enumerator
Parâmetros de Tipo Genérico
- T
- Herança
Observações
O C# foreach da linguagem C# e o Para cada um... A construção seguinte em Visual Basic esconde a complexidade dos enumeradores. Em vez de manipular diretamente o enumerador, recomenda-se usar foreach ou For Each...Next
Inicialmente, o enumerador está posicionado antes do primeiro elemento no ReadOnlySpan<T>. Nesta posição, Current é indefinido. Deve ligar MoveNext para avançar o enumerador para o primeiro item do ReadOnlySpan<T> antes de ler o valor de Current.
Current devolve o mesmo valor até MoveNext ser chamado. MoveNext define Current para o item seguinte no ReadOnlySpan<T>.
Se MoveNext passar o fim do ReadOnlySpan<T>, MoveNext devolve false. Quando o enumerador está neste estado, chamadas subsequentes também MoveNext retornam false e Current é indefinido. Não pode definir Current para o primeiro item do ReadOnlySpan<T> novamente; deve criar uma nova instância de enumerador em vez disso.
Embora o ReadOnlySpan<T> esteja alocado na pilha, os dados subjacentes para os quais aponta ReadOnlySpan<T> podem não estar. Portanto, enumerar através de a ReadOnlySpan<T> não é intrinsecamente um procedimento seguro para threads. Para garantir a segurança das threads durante a enumeração, deve implementar a sua própria sincronização.
Ao contrário de algumas outras estruturas enumeradoras em .NET, a ReadOnlySpan<T>.Enumerator:
Não implementa a IEnumerator interface OU IEnumerator<T> . Isto porque ReadOnlySpan<T>.Enumerator é uma estrutura de árbitros e não pode ser boxeada.
Não inclui um
Resetmétodo que possa definir o enumerador para a sua posição inicial antes do primeiro elemento do intervalo. (O IEnumerator.Reset() método deve ser implementado como parte da interface, mas a maioria dos implementadores ou lança uma exceção ou não fornece implementação.)
Propriedades
| Name | Description |
|---|---|
| Current |
Recebe uma referência ao item na posição atual do recenseador. |
Métodos
| Name | Description |
|---|---|
| MoveNext() |
Avança o enumerador para o próximo item do ReadOnlySpan<T>. |