Avatar ·

À quoi sert le mot-clé yield en C# et comment fonctionne-t-il ?

Bonjour à tous ! J'ai récemment commencé à apprendre C# et je suis tombé sur le mot-clé `yield`. J'ai lu la documentation sur MSDN, mais je n'ai pas bien compris à quoi il sert. Apparemment, on peut simplement retourner une liste ou un tableau depuis une méthode, pourquoi utiliser yield return ? J'ai ce code : j'écris une méthode qui génère une séquence de nombres de Fibonacci. Actuellement, je fais comme ça : ```csharp public List GetFibonacci(int count) { var result = new List(); int a = 0, b = 1; for (int i = 0; i < count; i++) { result.Add(a); int temp = a; a = b; b = temp + b; } return result; } ``` Mais j'ai vu qu'on peut écrire la même chose avec `yield return` : ```csharp public IEnumerable GetFibonacci(int count) { int a = 0, b = 1; for (int i = 0; i < count; i++) { yield return a; int temp = a; a = b; b = temp + b; } } ``` Quelle est la différence ? Quand faut-il utiliser la première version, et quand