Что такое деревья-выражений и как они представлены в языке C#?
Дерево выражений это своего рода структура, которая представляет собой дерево из нод, каждая из которых является выражением. С помощью дерева выражений можно динамически изменять выполняемый код, создавать динамические запросы и выполнять LINQ запросы в разные базы данных.
Вот пример кода дерева выражений:
namespace Main { using System; using System.Linq.Expressions;public class Program { public static void Main() { ParameterExpression parameter1 = Expression.Parameter(typeof(int), "parameter1"); ParameterExpression parameter2 = Expression.Parameter(typeof(int), "parameter2"); var c1 = Expression.Constant(5); var c2 = Expression.Constant(4); var first = Expression.Add(parameter1, c1); var second = Expression.Add(first, c2); var third = Expression.Multiply(second, parameter2); var expression = Expression.Lambda<Func<int, int, int>>(third, parameter1, parameter2); Func<int, int, int> func = expression.Compile(); Console.WriteLine(func(10, 25)); Console.ReadKey(); } }
}