Ce site utilise Google Analytics. En continuant à naviguer, vous nous autorisez à déposer des cookies à des fins de mesure d'audience. Si vous souhaitez vous opposer à ce dépôt vous pouvez cliquer ici - En savoir plus à propos des cookies OK
yield permet de construire un itérateur. Un itérateur permet de parcourir une séquence, et dans le cas présent, la séquence n'est pas construite avant utilisation, mais au fur et à mesure des besoins. Exemple:
using System;
using System.Collections;
public class List
{
// on suppose depart < fin :)
public static IEnumerable NombresPas2(int debut, int fin)
{
for (int i = debut; i < fin; i = i + 2)
{
yield return i;
}
}
static void Main()
{
// Afficher une suite de nombre ave cun pas de 2
foreach (int i in NombresPas2(1, 10))
{
Console.Write("{0} ", i);
}
Console.WriteLine();
}
}
Ce code va afficher 1 3 5 7 9
Les nombres sont construits à la volée, lors de l'exécution de la boucle foreach dans Main. Pour que ça soit possible, le compilateur génère tout un code pour garder le contexte d'exécution deNombresPas2, lorsqu'il rencontre le mot-clé yield, merci à lui :)
yield permet de construire un itérateur. Un itérateur permet de parcourir une séquence, et dans le cas présent, la séquence n'est pas construite avant utilisation, mais au fur et à mesure des besoins. Exemple:
Ce code va afficher 1 3 5 7 9
Les nombres sont construits à la volée, lors de l'exécution de la boucle foreach dans Main. Pour que ça soit possible, le compilateur génère tout un code pour garder le contexte d'exécution deNombresPas2, lorsqu'il rencontre le mot-clé yield, merci à lui :)