我知道在Python中你可以使用functools.partial
传递一个函数对象,其中包含已经定义的部分或全部参数。
有没有办法在C#中执行此操作?我想做以下事情:
class1.MethodTakingAMethodParameter(3, "foo", class1.MethodToPass(param1, param2, param3));
对于像delegate void Blah()
这样的代表。
答案 0 :(得分:2)
您可以使用lambdas为某些参数赋值:
Action paramlessDelegate = ()=>MyFunc(value1,value2,value3)
或者,如果您只想将值放入某些参数:
Action<int> oneParamDelegate = (remainingParam)=>MyFunc(value1, remainingParam, value3)
在你的例子中:
class1.MethodTakingAMethodParameter(3, "foo", ()=>class1.MethodToPass(param1, param2, param3));