This post originated from an RSS feed registered with .NET Buzz
by -.
Original Post: C#: yield
Feed Title: Norbert Eder - Living .NET
Feed URL: http://feeds.feedburner.com/NorbertEder-Livingnet
Feed Description: Copyright (c)2005, 2006 by Norbert Eder
Das Schlüsselwort yield gibt es bereits seit .NET 2.0. In freier Wildbahn trifft man es bis dato jedoch sehr selten an. Hier eine kleine Erklärung wofür yield gut ist.
yield wird in einem Iterator-Block verwendet, um für das zurückzulieferende Objekt einer Enumeration einen Wert zu liefern oder das Ende der Enumeration anzuzeigen.
Der Hintergrund dieser Methode ist, über alle Zeilen einer Datei zu iterieren. Dazu wird ausserhalb dieser Methode ein Objekt des Typs StreamReader instanziiert und der Methode zusammen mit einem Trennzeichen (in diesem Fall ideal für CVS-Dateien) übergeben. Als Ergebnis kann über die Datei wie durch eine Auflistung iteriert werden.
Mit folgender Methode könnte nun das jeweils erste Element einer jeden Zeile in einer CVS-Datei ausgegeben werden:
privatevoid TestFunction()
{
StreamReader sr = new StreamReader("Test.cvs");
foreach (string[] s in LoadFile(";", sr))
{
Console.WriteLine(s[0]);
}
sr.Close();
}
Eine einfachere Variante dies zu bewerkstellingen gibt es wohl kaum ...