Im чтение книги Jon Skeet. (Expression Trees Глава) Это есть пример создания дерева выражений из лямбда-выражений:Значения повторного использования выражений?
Expression<Func<string, string, bool>> expression = (x, y) => x.StartsWith(y);
var compiled = expression.Compile();
Console.WriteLine(compiled("First", "Second"));
Console.WriteLine(compiled("First", "Fir"));
Теперь он делает то же самое с выражением дерева:
вопрос:
yellow часть уже содержит информацию о параметрах!
Почему я должен указать СНОВА в синий часть тех парам?
в этой строке 'Expression call = Expression.Call (target, method, methodArgs);' Я сказал ему, что это за заказ! первый - это x, второй - метод, а третий - аргумент! –
@Royi: Это не тот порядок, в котором параметры * принимаются * с помощью лямбда верхнего уровня, так как параметры * используются * в этом конкретном подвыражении. – Ani