我正在尝试在 Windows 窗体应用程序中生成事件处理程序。当我写
myAlgorithm.nextNodeFound +=
并按两次“Tab”,它会自动生成一个新的处理程序,但这个处理程序适用于 EventArgs,我需要的是有一个与CustomEventArgs
. 我试图修改自动生成的处理程序的签名,但它给出了错误
*myAlgo_nextNodeFound 没有重载匹配委托 System.EventHandler*
请建议如何使其工作。
我正在尝试在 Windows 窗体应用程序中生成事件处理程序。当我写
myAlgorithm.nextNodeFound +=
并按两次“Tab”,它会自动生成一个新的处理程序,但这个处理程序适用于 EventArgs,我需要的是有一个与CustomEventArgs
. 我试图修改自动生成的处理程序的签名,但它给出了错误
*myAlgo_nextNodeFound 没有重载匹配委托 System.EventHandler*
请建议如何使其工作。
看起来问题在于您已将nextNodeFound
事件声明为 type EventHandler
。如果您需要它与您的自定义参数一起使用,您应该使用使用正确参数的委托类型......泛型EventHandler<TEventArgs>
类型可能是您想要的:
public event EventHandler<CustomEventArgs> NextNodeFound;
请注意,我已经更改了符合 .NET 命名约定的名称。这也假设CustomEventArgs
源自EventArgs
- 如果还没有,我建议你这样做。您可能还想更改名称以表明它是如何自定义的 - 例如NodeTraversalEventArgs
或类似的东西。
听起来您可能对 .NET 事件比较陌生 - 您可能想阅读我关于事件和委托的文章。