Home > Microsoft .NET > neue C# Anweisung yield return

neue C# Anweisung yield return

Bereits mit der Version 2.0 wurde C# um ein mächtiges Feature erweitert: yield return.
Mit C# 3.0 kam dann unter anderem das var dazu. Dazu ein kleines Beispiel:

private static void TestList()
{
    var list = new List<String> { 
        "Dies ist Zeile 1", 
        "HIER KOMMT ZEILE 2", 
        "3 hat nichts", 
        "4 IST NOCH MAL EIN TREFFER" };
    foreach (var item in list)
    {
        Console.WriteLine(item);
    }
 
    Console.WriteLine();
 
    foreach (var item in FilterUpperLines(list))
    {
        Console.WriteLine(item);
    }
}
 
private static IEnumerable<String> FilterUpperLines(List<String> list)
{
    foreach (string elem in list)
    {
        if (elem.ToUpper() == elem)
            yield return elem;
    }
}

var kann bei einer Variablendeklaration anstelle des Typs gesetzt werden, sofern die Definition für den Compiler zwingend ist. Das macht meiner Meinung nach immer dann Sinn, wenn der Typ beispielsweise durch die Initialisierung direkt dahinter nochmals wiederholt wird.

yield kann einem sehr viel Arbeit abnehmen, wenn man Mengen zurückgeben möchte. yield return sammelt quasi die Ergebnismenge ein und gibt sie in Form einer Liste zurück. Das eigentliche Definieren und zurückgeben der Liste übernimmt komplett der Compiler.

Der Clou am var ist übrigens: Diese Funktionen lassen sich auch bei einem Compilat für das Net-Framework 2.0 nutzen! Der Compiler braucht für die Funktionalität keine Features aus dem 3er Framework.

KategorienMicrosoft .NET Tags: ,
  1. Bisher keine Kommentare
  1. Bisher keine Trackbacks