将带参数的函数传递给不需要参数的委托

本文关键字:参数 不需要 函数 | 更新日期: 2023-09-27 17:58:27

我知道在Python中,可以使用functools.partial传递一个函数对象,该对象具有已经定义的部分或全部参数。

在C#中有办法做到这一点吗?我想做以下事情:class1.MethodTakingAMethodParameter(3, "foo", class1.MethodToPass(param1, param2, param3));

对于像delegate void Blah()这样的代表。

将带参数的函数传递给不需要参数的委托

您可以使用lambdas为一些参数提供一个值:

Action paramlessDelegate = ()=>MyFunc(value1,value2,value3)

或者,如果你只想在一些参数中输入一个值:

Action<int> oneParamDelegate = (remainingParam)=>MyFunc(value1, remainingParam, value3)

在您的示例中:

class1.MethodTakingAMethodParameter(3, "foo", ()=>class1.MethodToPass(param1, param2, param3));