Découvrez les nouveautés du Framework de Microsoft
16 avr
Un itérateur est une méthode qui permet d’utiliser un “foreach in” sur une classe. Jusqu’à maintenant, vous utilisiez le foreach in sur des collections. Exemple:
foreach(ListViewItem lvi in maListView.Items)
{
}
Vous ne pouviez donc travaillez que sur des objets de type Collection. C’est toujours le cas maintenant mais l’appel à ces collections se fait par l’appel à la classe parente de celles-ci. Prenons comme exemple, la classe Personne qui permet de contenir le nom et les différents prénoms d’une personne.
public class Personne
{
public string _Nom = “Morand”;
string[] _Prenoms = { “Louis-Guillaume”, “Charles”, “Aurélien”};
public System.Collections.IEnumerator GetEnumerator()
{
foreach (string prenom in _Prenoms)
yield return prenom;
}
}
// utilisation de l’itérateur
// instanciation de la classe Personne
Personne p = new Personne();
// itération à travers le foreach
foreach (string prenom in p)
{
Console.WriteLine(prenom);
}
Le mot-clé yield sert à retourner implicitement le type de l’objet retourné.
D’après la MSDN, les itérateurs ont les propriétés suivantes:
- une itérateur est une section de code retournant une suite ordonnée de valeurs
- un itérateur utilise le statement yield return pour renvoyer une valeur
- un itérateur peut être utilisé dans le corps d’une méthode ou dans un accesseur
- le type retourné par un itérateur doit être System.Collections.IEnumerable, System.Collections.IEnumerator ou l’un des itérateurs génériques
Source : developpez.com