问题描述
- 问个 this.Invoke((EventHandler) delegate{/*委托内容*/})
-
这句话是卸载我看MSDN介绍说:EventHandler是表示将处理不包含事件数据的事件的方法,但我这里的委托内容是将获取的参数转为另一个参数,生成数据了。和EventHandler的官方说法矛盾啊?刚查了下,SerialDataReceivedEventArgs用于传递数据,但还是不理解this.Invoke((EventHandler) delegate{/*委托内容*/}) 这句话为什么可以用?delegate是委托。
解决方案
EventHandler 委托的签名是
public delegate void EventHandler(Object sender, EventArgs e);
其中第二个参数是EventArgs表示包含事件数据的类的基类,并提供要用于不包含事件数据的事件的值。只有一个Empty字段。
EventHandler 是一个预定义的委托,专用于表示不生成数据的事件的事件处理程序方法。
**如果事件生成数据,则必须提供自己的自定义事件数据类型,并且必须要么创建一个委托,其中第二个参数的类型为自定义类型,
要么使用泛型 EventHandler 委托类并用自定义类型替代泛型类型参数。**
因为你上面的代码看,你好像不是使用EventHandler这样的泛型委托,所以检查一下你使用的是自定义委托,而并不是EventHandler。
时间: 2024-11-03 13:24:26