#linq
#linq
Вопрос:
Я использую Expression.Call
для динамического построения MethodCallExpression. Вызов предназначен для «первого» метода. Затем мне нужно преобразовать его в Expression<Func<x,y>>
(x и y являются типами, и это не имеет отношения к вопросу). Я пытаюсь сделать это с помощью Expression.Lambda<Func<x,y>>
, но получаю Incorrect number of parameters supplied for lambda declaration
исключение при передаче
new ParameterExpression[]{}
(т.е. пустой массив) во входном параметре ParameterExpression[].
что должно быть предоставлено Expression.Lambda
, когда лямбда-выражение принимает нулевые параметры?
Ответ №1:
Action
соответствует ли делегат a void
, который не принимает параметров. Func<x, y>
говорит, что метод принимает x
и возвращает y
. Все Func
делегаты возвращают значения, и все Action
делегаты являются void
.