Cette page vous a-t-elle été utile ?
Votre avis sur ce contenu est important. N'hésitez pas à nous faire part de vos commentaires.
Vous avez d'autres commentaires ?
1500 caractères restants
Exporter (0) Imprimer
Développer tout
Cet article a fait l'objet d'une traduction automatique. Déplacez votre pointeur sur les phrases de l'article pour voir la version originale de ce texte. Informations supplémentaires.
Traduction
Source

IEnumerator.Reset, méthode

Rétablit l'énumérateur à sa position initiale, qui précède le premier élément de la collection.

Espace de noms :  System.Collections
Assembly :  mscorlib (dans mscorlib.dll)

void Reset()

ExceptionCondition
InvalidOperationException

La collection a été modifiée après la création de l'énumérateur.

Un énumérateur reste valide tant que la collection reste inchangée. Si la collection est modifiée par l'ajout, la modification ou la suppression d'éléments, l'énumérateur devient irrévocablement non valide et l'appel suivant à la méthode MoveNext ou Reset lève InvalidOperationException.

La méthode Reset est fournie pour l'interopérabilité COM. Elle ne doit pas nécessairement être implémentée ; au lieu de cela, l'implémenteur peut simplement lever un NotSupportedException.

Remarques à l'attention des implémenteurs

Tous les appels de Reset doivent conduire au même état de l'énumérateur. Positionnez de préférence l'énumérateur au début de la collection, avant le premier élément. Cela a pour effet de rendre l'énumérateur non valide si la collection a été modifiée depuis la création de l'énumérateur, conformément à MoveNext et Current.

L'exemple de code suivant illustre l'implémentation des interfaces IEnumerator pour une collection personnalisée. Dans cet exemple, la méthode Reset n'est pas appelée explicitement, mais elle est implémentée pour prendre en charge l'utilisation de foreach (for each en Visual Basic). Cet exemple de code fait partie d'un exemple plus complet fourni pour l'interface IEnumerator.


public class PeopleEnum : IEnumerator
{
    public Person[] _people;

    // Enumerators are positioned before the first element
    // until the first MoveNext() call.
    int position = -1;

    public PeopleEnum(Person[] list)
    {
        _people = list;
    }

    public bool MoveNext()
    {
        position++;
        return (position < _people.Length);
    }

    public void Reset()
    {
        position = -1;
    }

    object IEnumerator.Current
    {
        get
        {
            return Current;
        }
    }

    public Person Current
    {
        get
        {
            try
            {
                return _people[position];
            }
            catch (IndexOutOfRangeException)
            {
                throw new InvalidOperationException();
            }
        }
    }
}


.NET Framework

Pris en charge dans : 4.5.2, 4.5.1, 4.5, 4, 3.5, 3.0, 2.0, 1.1, 1.0

.NET Framework Client Profile

Pris en charge dans : 4, 3.5 SP1

Bibliothèque de classes portable

Pris en charge dans : Bibliothèque de classes portable

.NET pour les applications du Windows Store

Pris en charge dans : Windows 8

.NET pour les applications Windows Phone

Pris en charge dans : Windows Phone 8, Silverlight 8.1

Windows Phone 8.1, Windows Phone 8, Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (rôle principal du serveur non pris en charge), Windows Server 2008 R2 (rôle principal du serveur pris en charge avec SP1 ou version ultérieure ; Itanium non pris en charge)

Le .NET Framework ne prend pas en charge toutes les versions de chaque plateforme. Pour obtenir la liste des versions prises en charge, consultez Configuration requise du .NET Framework.

Ajouts de la communauté

AJOUTER
Afficher:
© 2015 Microsoft