Drzewa wyrażeń - Expression trees w języku C#

Drzewa wyrażeń - kod w strukturze drzewa.


Drzewa wyrażeń reprezentują kod w strukturze drzewiastej, w której każdy węzeł opowiada pewnemu wyrażeniu. Przykładowo może to być zwykłe wyrażenie x <y, w zależności od wyniku przechodzimy do prawej lub lewej gałęzi drzewa. Drzewa wyrażeń są wykorzystywane w zapytaniach LINQ do tłumaczenia kodu C# na kod SQL a także w wyrażeniach lambda.

Przykładowy kod korzystający z drzewa wyrażeń:

public static void Main()
{
    //drzewo wyrażeń
    Expression<Func<int, bool>> expr = num => num > 4;
 
    // Kompilacja drzewa
    Func<int, bool> result = expr.Compile();
 
    // Wywołanie delegaty i wypisanie na ekranie
    Console.WriteLine(result(5));
    //Zwraca wartość true
 
    //Sposób uproszczony, kompilacja razem z wywołaniem
    Console.WriteLine(expr.Compile()(5));
 
    Console.ReadLine();
} 

Więcej informacji na temat drzew wyrażeń:

http://msdn.microsoft.com/pl-pl/library/bb397951.aspx
Komentarze facebook (polub nasz profil na FB aby je zobaczyć):