У меня есть следующая функция, в которой я хочу, чтобы пройти через параметры функции ...Преобразование вызова функции в выражении C#
private static void TestExpression(Expression expr)
{
MethodCallExpression methodCall = expr as MethodCallExpression;
if(methodCall == null)
throw new ArgumentException("not a function call");
ReadOnlyCollection<Expression> args = methodCall.Arguments;
ParameterInfo[] param = methodCall.Method.GetParameters();
param.ToList().ForEach(p => Console.WriteLine(p.Name));
}
Только для иллюстративного У меня также есть фиктивная функция ...
static int SomeFunc(int a, int b)
{
return 0;
}
проблема заключается в том, что я не знаю, как преобразовать вызов функции в выражение, то есть, я не знаю, как сделать следующий вызов
TestExpression(/*Something here converting SomeFunc(20, 30) to a Expression*/)
Я хочу упомянуть, что мне не нужны другие методы для прохождения параметров. Я пробовал несколько вариантов с лямбда-выражениями, но без успеха ...
Я забыл упомянуть, что используется .Net 3.5 – user2436426