为事件附加要执行的方法

本文关键字:执行 方法 事件 | 更新日期: 2023-09-27 18:17:22

我从我正在使用的特殊API中获得了一个事件,我正在使用的事件被定义为

public event EventHandler<QuoteEventArgs> OnQuote

public class QuoteEventArgs : EventArgs

所以我要做的是附加一个方法,当我得到一个新的Quote监听这个事件时运行。

所以我要做的是:

myInstance.OnQuote += new EventHandler<QuoteEventArgs>(doThis);

方法定义为:

public void doThis(object sender, QuoteEventArgs e){
//code here..
}
我得到的错误是:

不能隐式转换类型'System.EventHandler<MT4API.QuoteEventArgs>''System.EventHandler'

,但我似乎没有一个特殊的事件处理程序的API,所以不太确定如何使其工作

为事件附加要执行的方法

从评论讨论来看,您似乎正在使用事件没有泛型类型的库版本,即签名是

public event EventHandler OnQuote;

这意味着您还必须以非泛型方式使用它:-

myInstance.OnQuote += new EventHandler(doThis);
public void doThis(object sender, EventArgs e){
   var myArgs = (QuoteEventArgs)e;
   ...
}

我的猜测是有两个名为QuoteEventArgs的类,可能一个来自引用的DLL,另一个来自生成的代理。确保你的用法是正确的