EventArrivedEventHandler和EventHandler之间的区别



我试图创建一个USB控制器类,只是试图将我的内部EventArrivedEventHandlerManagementEventWatcher曝光,以允许消费者在检测到USB时可以做某事。

我原本希望能够将EventarrivedEventHandler扔给EventHandler,因为他们都是代表……但显然不是。

有没有可能的原因?

编辑:我找到了一种方法,可以让我非常干净地做。

_watcher.EventArrived += (sender, eventArgs) => DeviceDetected?.Invoke(null, null);

不可能的原因是 EventArraivedEventHandlerEventHandler具有不同的签名。如您所见,EventArrivedEventHandler作为第二个参数EventArrivedEventArgs而不是EventArgs,而不是CC_7。

public delegate void EventArrivedEventHandler(object sender, EventArrivedEventArgs e)

从理论上讲,应该可以将其施放给EventHandler<EventArrivedEventArgs>

有关此问题的更多详细信息,请访问EventArivedEventHandler和EventArrivedEventargs的MSDN页面。

public event EventHandler DriveDetected;
private void workaround(object sender, EventArrivedEventArgs e)
{
    DriveDetected?.Invoke(sender, e as EventArgs);
}
watcher.EventArrived += new EventArrivedEventHandler(workaround);

根据您的帖子。欢呼。

相关内容

  • 没有找到相关文章

最新更新