À 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