繁体   English   中英

为什么不能用 Func 的参数直接调用函数呢?

[英]Why can't you invoke the fuction directly with the parameters with Func?

我只是有一个关于FuncAction代表的问题。

我只是想知道为什么你不能直接这样做:

public static int addTowNumber(int a, int b)
{
    return a + b;
}

Func<int, int, int> add = addTowNumber(1,2);

但你必须这样做:

Func<int, int, int> add = addTowNumber;

var addNumber = add(1, 2);
Console.WriteLine(addNumber);

通过传递 arguments 您实际上是在调用该方法,并返回一个int

要存储对 function 的引用(稍后调用),您不需要传递 arguments,这就是正确的原因:

Func<int, int, int> add = addTowNumber;

然后,您可以在调用时提供您喜欢的任何 arguments:

int result1 = add(1, 2);
int result2 = add(3, 4);

如果您想延迟执行具有预定义 arguments 的方法,这就是您正在尝试做的事情,您需要创建一个像这样的闭包:

Func<int> add = () => addTowNumber(1, 2);
int result = add();

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM