Если я хочу заменить этот анонимный метод:
Func<int, int> f = delegate(int i)
{
return i + 1;
};
с деревом выражений было бы так:
ParameterExpression i = Expression.Parameter(typeof(int), "i");
Expression one = Expression.Constant(1, typeof(int));
Expression body = Expression.Add(i, one);
Func<int, int> f = Expression.Lambda<Func<int, int>>(body, i).Compile();
(Я знаю: дерево выражений будет тайно динамически создавать другой метод anyous, но это не главное).
Теперь я хочу заменить следующий метод деревом выражений:
Func<int, int> f = delegate(int i)
{
Debug.WriteLine("Inside the function!");
return i + 1;
};
Есть ли способ и как мне это сделать?