es gerade ist erzeugt, weil es mir eine Zeile einer Liste Erklärung speichert?
Nein. Wenn Sie yield
verwenden, erhalten Sie die verzögerte Ausführung. Dies bedeutet, dass Sie die Artikel erstellen, die ausgegeben werden sollen, wenn der Verbraucher die Artikel konsumiert.
Wenn Sie Elemente zur Liste hinzufügen und sie dann zurückgeben, müssen Sie alle Elemente erstellen, bevor der Konsument sie verwenden kann.
zum Beispiel angenommen, dass der Verbraucher Ihre Methode aufruft und verwendet eine for-Schleife es so zu verbrauchen:
foreach(var item in GetMyLovelyItems())
{
...
}
Wenn die GetMyLovelyItems
eine Liste zurückgibt, dann werden alle Einzelteile, bevor die GetMyLovelyItems
Methode zurückgibt, erstellt werden und die Schleife beginnt.
Wenn Sie auf der anderen Seite yield
verwenden, um Elemente zurückzugeben, werden die Elemente erstellt, wenn die Schleife von einer Iteration zur nächsten übergeht.
Die Verwendung der Ausbeute in einer Methode macht es zu einem Iterator - ich glaube nicht, dass es in der Sprache andere Verwendung hat – Charleh
Vielen Dank für die Korrekturen. –