KyKiske22 2015-07-01 01:48 采纳率: 0%
浏览 3939

问个 this.Invoke((EventHandler) delegate{/*委托内容*/})

这句话是卸载我看MSDN介绍说:EventHandler是表示将处理不包含事件数据的事件的方法,但我这里的委托内容是将获取的参数转为另一个参数,生成数据了。和EventHandler的官方说法矛盾啊?刚查了下,SerialDataReceivedEventArgs用于传递数据,但还是不理解this.Invoke((EventHandler) delegate{/*委托内容*/}) 这句话为什么可以用?delegate是委托。

  • 写回答

1条回答 默认 最新

  • save4me 2015-07-04 11:32
    关注

    EventHandler 委托的签名是
    public delegate void EventHandler(Object sender, EventArgs e);
    其中第二个参数是EventArgs表示包含事件数据的类的基类,并提供要用于不包含事件数据的事件的值。只有一个Empty字段。

    EventHandler 是一个预定义的委托,专用于表示不生成数据的事件的事件处理程序方法。

    **如果事件生成数据,则必须提供自己的自定义事件数据类型,并且必须要么创建一个委托,其中第二个参数的类型为自定义类型,
    要么使用泛型 EventHandler 委托类并用自定义类型替代泛型类型参数。
    **

    因为你上面的代码看,你好像不是使用EventHandler这样的泛型委托,所以检查一下你使用的是自定义委托,而并不是EventHandler。

    评论

报告相同问题?