Bonjour à tous,
Est-ce que quelqu'un pourrait m'expliquer en deux mots à quoi sert le mot clé yield en C# ?
Nicolas
Bonjour à tous,
Est-ce que quelqu'un pourrait m'expliquer en deux mots à quoi sert le mot clé yield en C# ?
Nicolas
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 :)