Wozu dient das Schlüsselwort yield in C# und wie funktioniert es?
Hallo zusammen! Ich habe kürzlich angefangen, C# zu lernen, und bin auf das Schlüsselwort `yield` gestoßen. Ich habe die Dokumentation auf MSDN gelesen, aber nicht ganz verstanden, wozu es gut ist. Man könnte doch einfach eine Liste oder ein Array aus einer Methode zurückgeben, warum sollte man yield return verwenden?
Ich habe diesen Code: Ich schreibe eine Methode, die eine Fibonacci-Zahlenfolge generiert. Derzeit mache ich das so:
```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;
}
```
Aber ich habe gesehen, dass man dasselbe mit `yield return` schreiben kann:
```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;
}
}
```
Was ist der Unterschied? Wann sollte man die erste Variante verwenden, wann
Noch keine Antworten.
Anmelden um eine Antwort zu hinterlassen
Blogs