我正在尝试在Windows窗体应用程序中生成一个事件处理程序。我写的时候
myAlgorithm.nextNodeFound +=
并按两次'Tab'它会自动生成一个新的处理程序,但这个处理程序适用于EventArgs,我需要的是有一个与CustomEventArgs
一起使用的处理程序。我试图修改自动生成的处理程序的签名,但然后它给出了错误
* myAlgo_nextNodeFound的重载不匹配委托 System.EventHandler *
请建议如何使其发挥作用。
答案 0 :(得分:2)
看起来问题是您已将nextNodeFound
事件声明为EventHandler
类型。如果您需要它来使用自定义args,您应该使用使用正确参数的委托类型...通用EventHandler<TEventArgs>
类型可能是您想要的:
public event EventHandler<CustomEventArgs> NextNodeFound;
请注意,我已更改了遵守.NET命名约定的名称。这也假设CustomEventArgs
来自EventArgs
- 如果它还没有,我建议你这样做。您可能还想更改名称以指示 的自定义方式 - 例如NodeTraversalEventArgs
或类似内容。
听起来你可能对.NET事件比较陌生 - 你可能想要阅读我的article on events and delegates。