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

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);

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

要存储对函数的引用,以便稍后调用,您不传递参数,这就是为什么这是正确的:

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

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

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

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

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