有没有办法将函数及其参数存储在变量中以便以后调用?

时间:2016-11-11 21:14:55

标签: c# delegates

在C#中,我想做这样的事情。

var fn = // set it to the function and parameters it'll use

fn();

在一个假设的例子中,假设我想返回一个具有执行所需的所有参数的函数,我只是想从其他地方执行它。

1 个答案:

答案 0 :(得分:6)

您可以创建一个Action委托,使用以下参数调用该函数:

var fn = () => OtherFunction(param1, param2);

如果参数可以在调用fn之前更改,则可以复制参数,如果是按值,则将它们分配给新变量,或者如果是引用则实现一些Clone机制:

var value1 = param1;  // In case of value types.
var value2 = param2;  // In case of value types.
var fn = () => OtherFunction(value1, value2);

然后稍后调用fn操作:

fn();