我有一个接受Action
委托并执行给定方法的方法,如下所示:
public void ExpMethod(Action inputDel) { inpuDel(); }
我可以这样调用上面给出的方法:
ExpMethod(() => {/*do something that matters*/});
一切正常.到现在为止还挺好.现在我想要一个将泛型Action
委托作为输入参数的方法 - 像这样:
public void ExpGenMethod(ActioninputDel) { // I don't know how to call the supplied delegate as it requires parameters }
另外,我试图ExpGenMethod
用这种方式调用它:
ExpGenMethod(("Hi",1) => {/*do something that makes sense*/});
但它显示语法错误.在这种情况下,请告诉我如何使用通用操作委托?
委托的重点是指向一个方法.在声明它的同时将参数传递给它是没有意义的.而是在执行委托的方法中传递您的委托的参数,在您的情况下ExpGenMethod
:
你应该这样做:
public void ExpGenMethod(ActioninputDel) { inputDel("Hi", 1); }
并称之为:
ExpGenMethod((x, y) => {/*do something that makes sense*/});
当执行该委托x
评估,以"Hi"
和y
到1
.