调试“Delegate'sendorpostcallback'不接受0参数”?

时间:2016-09-09 01:32:13

标签: c# lambda delegates

有人能指出我为什么会收到此错误以及如何解决此问题?突出显示错误的部分位于lambda表达式中OP.Post的括号之后。

    private AsyncOperation OP;
    public event ExceptionThrownEventHandler ExceptionThrown;
    public delegate void ExceptionThrownEventHandler(UClient sender, Exception ex);

    private void OnExceptionThrown(Exception ex)
    {
        if (ExceptionThrown != null)
        {
            ExceptionThrown(this, ex);
        }
    }

    OP.Post(() => OnExceptionThrown(new Exception("Exception description here.")), null);

1 个答案:

答案 0 :(得分:0)

OP.Post()需要SendOrPostCallback类型的委托,该委托应该有1个参数:object state(如果查看文档)。

因此,只需添加参数即可尊重预期的方法签名,即使您实际上并未使用它:

OP.Post(state => OnExceptionThrown(new Exception("Exception description here.")), null);