【发布时间】:2017-01-02 04:41:43
【问题描述】:
当我有目标、MethodInfo 和要传入的参数时,我可以动态地创建一个带有像 () => Method(args) 这样的 lambda 表达式的 Action 委托吗?
假设我有一个采用 int 参数的方法,并希望分配一个 Action 委托以使用参数 1 调用它,就像 Action action = () => Method(1) 一样,但我想动态地执行它。你可以做一个委托并分配动作来动态调用它,或者分配它来调用方法,但是性能很糟糕。
public class DelegateData
{
public object target;
public MethodInfo method;
public object[] args;
}
【问题讨论】:
-
你想达到什么目的?对我来说似乎很不清楚
-
@Nobody 创建一个调用方法的 lambda 表达式并将其动态存储在 Action 委托中。
-
@Nobody 目标基本上是创建一个 Action 委托,该委托调用带有一堆预设参数的方法。
-
你不能只调用你的方法并将 DelegateData 作为参数传递吗? msdn.microsoft.com/en-us/library/018hxwa8(v=vs.110).aspx
标签: c# reflection lambda delegates