ReadOnlySpan<T>.Enumerator Structure
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Fournit un énumérateur pour les éléments d’un 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
Paramètres de type
- T
- Héritage
Remarques
Foreach C# du langage C# et for each... La construction suivante dans Visual Basic masque la complexité des énumérateurs. Au lieu de manipuler directement l’énumérateur, il est recommandé d’utiliser foreach
ou For Each...Next
.
Initialement, l’énumérateur est positionné avant le premier élément du ReadOnlySpan<T>. À cette position, Current n'est pas défini. Vous devez appeler MoveNext pour avancer l’énumérateur vers le premier élément du ReadOnlySpan<T> avant de lire la valeur de Current.
Current retourne la même valeur jusqu’à ce que MoveNext soit appelé. MoveNext définit Current sur l’élément suivant dans le ReadOnlySpan<T>.
Si MoveNext passe la fin de , ReadOnlySpan<T>MoveNext retourne false
. Lorsque l’énumérateur est à cet état, les appels suivants à MoveNext retournent false
également et Current ne sont pas définis. Vous ne pouvez pas définir Current à nouveau sur le premier élément du ; vous devez créer une nouvelle instance d’énumérateur à la ReadOnlySpan<T> place.
Bien que le ReadOnlySpan<T> soit alloué sur la pile, les données sous-jacentes sur lesquelles pointe le ReadOnlySpan<T> peuvent ne pas l’être. Par conséquent, l’énumération via un ReadOnlySpan<T> n’est pas intrinsèquement une procédure thread-safe. Pour garantir la sécurité des threads pendant l’énumération, vous devez implémenter votre propre synchronisation.
Contrairement à d’autres structures d’énumérateur dans .NET, le ReadOnlySpan<T>.Enumerator:
N’implémente pas l’interface IEnumerator ou IEnumerator<T> . Cela est dû au fait que ReadOnlySpan<T>.Enumerator est un struct ref et ne peut pas être encadré.
N’inclut pas de
Reset
méthode, qui peut définir l’énumérateur sur sa position initiale avant le premier élément de l’étendue. (La IEnumerator.Reset() méthode doit être implémentée dans le cadre de l’interface, mais la plupart des implémenteurs lèvent une exception ou ne fournissent aucune implémentation.)
Propriétés
Current |
Obtient une référence à l’élément à la position actuelle de l’énumérateur. |
Méthodes
MoveNext() |
Avance l’énumérateur à l’élément suivant de ReadOnlySpan<T>. |