ReadOnlySpan<T>.Enumerator Struct-datatyp
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
Tillhandahåller en uppräkning för elementen i en 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
Typparametrar
- T
- Arv
Kommentarer
C# foreach för C#-språket och För varje... Nästa konstruktion i Visual Basic döljer komplexiteten hos uppräknare. I stället för att direkt manipulera uppräknaren rekommenderar vi att du använder foreach eller For Each...Next .
Inledningsvis placeras uppräknaren före det första elementet i ReadOnlySpan<T>. I det här läget Current är det odefinierat. Du måste anropa MoveNext för att flytta uppräknaren till det första objektet i ReadOnlySpan<T> innan du läser värdet Currentför .
Current returnerar samma värde tills det anropas MoveNext . MoveNext anger Current till nästa objekt i ReadOnlySpan<T>.
Om MoveNext passerar slutet av ReadOnlySpan<T>returnerar false. MoveNext När uppräknaren är i det här tillståndet returneras false även efterföljande anrop till MoveNext och Current är odefinierat. Du kan inte ange Current det första objektet i igen. Du måste skapa en ny uppräkningsinstans i ReadOnlySpan<T> stället.
ReadOnlySpan<T> Även om allokeras på stacken kanske inte de underliggande data som ReadOnlySpan<T> pekar på är. Därför är uppräkning genom en ReadOnlySpan<T> i sig inte en trådsäker procedur. För att garantera trådsäkerheten under uppräkningen måste du implementera din egen synkronisering.
Till skillnad från andra uppräkningsstrukturer i .NET ReadOnlySpan<T>.Enumerator:
Implementerar IEnumerator inte gränssnittet eller IEnumerator<T> . Detta beror på att ReadOnlySpan<T>.Enumerator är en referens struct och kan inte boxas.
Inkluderar inte en
Resetmetod som kan ange uppräknaren till sin ursprungliga position före det första elementet i intervallet. (Metoden IEnumerator.Reset() måste implementeras som en del av gränssnittet, men de flesta implementorer utlöser antingen ett undantag eller tillhandahåller ingen implementering.)
Egenskaper
| Name | Description |
|---|---|
| Current |
Hämtar en referens till objektet vid den aktuella positionen för uppräknaren. |
Metoder
| Name | Description |
|---|---|
| MoveNext() |
Avancerar uppräknaren till nästa objekt i ReadOnlySpan<T>. |