我有一个方法,它接受具有参数
的方法委托 public delegate void RunOperation(object o );
public void Abort(RunOperation operationToRun, object obj)
{
}
public void AllMessages()
{
}
是否可以将AllMessage()作为委托传递给Abort()?
我不想为无参数方法创建任何新的delgate。
由于
答案 0 :(得分:2)
不,是的。
你可以这样:
Abort(_ => AllMessages(), null);
但是你只是创建另一个调用AllMessages
并且不使用object参数的方法。
答案 1 :(得分:0)
我会用这种方式解决它:
public void Abort(Action operationToRun, object obj)
{
}
public void Abort(Action<object> operationToRun, object obj)
{
}
public void AllMessages()
{
}
<强>解释强>:
为Abort方法重载。第一种方法采用不带参数的动作,第二种方法采用一个参数进行动作。因此,您可以使用无参数方法和带有对象参数的方法调用Abort。