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 : System::Collections::Generic::IEnumerator<T>
public: value class ReadOnlySpan<T>::Enumerator
public ref struct ReadOnlySpan<T>.Enumerator : System.Collections.Generic.IEnumerator<T>
public ref struct ReadOnlySpan<T>.Enumerator
type ReadOnlySpan<'T>.Enumerator = struct
interface IEnumerator<'T>
interface IEnumerator
interface IDisposable
type ReadOnlySpan<'T>.Enumerator = struct
Public Structure ReadOnlySpan(Of T).Enumerator
Implements IEnumerator(Of T)
Public Structure ReadOnlySpan(Of T).Enumerator
Paramètres de type
- T
- Héritage
- Implémente
Remarques
Le C# foreach de la langue C# et le For Each... Ensuite construire dans Visual Basic masque la complexité des énumérateurs. Au lieu de manipuler directement l’énumérateur, l’utilisation foreach ou For Each...Next l’utilisation est recommandée.
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 faire avancer l’énumérateur vers le premier élément dans l’avant ReadOnlySpan<T> de lire la valeur de Current.
Current retourne la même valeur jusqu’à ce qu’elle MoveNext soit appelée. MoveNext définit Current l’élément suivant dans le ReadOnlySpan<T>.
Si MoveNext elle passe la fin du ReadOnlySpan<T>, MoveNext retourne false. Lorsque l’énumérateur se trouve à cet état, les appels suivants pour MoveNext retourner et Current ne sont pas false définis. Vous ne pouvez pas définir Current le premier élément dans le nouveau ; vous devez créer une instance d’énumérateur à la ReadOnlySpan<T> place.
Bien qu’il ReadOnlySpan<T> soit alloué sur la pile, les données sous-jacentes sur lesquelles les ReadOnlySpan<T> points peuvent ne pas être. Par conséquent, l’énumération par le biais d’une ReadOnlySpan<T> procédure non thread-safe n’est intrinsèquement pas 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 ou IEnumerator<T> l’interfaceIEnumerator. Cela est dû au fait qu’il ReadOnlySpan<T>.Enumerator s’agit d’un struct ref et ne peut pas être boxé.
N’inclut pas de
Resetmé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
| Nom | Description |
|---|---|
| Current |
Obtient une référence à l’élément à la position actuelle de l’énumérateur. |
Méthodes
| Nom | Description |
|---|---|
| MoveNext() |
Avance l’énumérateur jusqu’à l’élément suivant du ReadOnlySpan<T>. |
Implémentations d’interfaces explicites
| Nom | Description |
|---|---|
| IDisposable.Dispose() |
Effectue des tâches définies par l’application associées à la libération, à la libération ou à la réinitialisation des ressources non managées. |
| IEnumerator.Current |
Obtient l’élément de la collection à la position actuelle de l’énumérateur. |
| IEnumerator.Reset() |
Définit l’énumérateur à sa position initiale, qui est avant le premier élément de la collection. |
| IEnumerator<T>.Current |
Obtient l’élément de la collection à la position actuelle de l’énumérateur. |