附加执行事件的方法

时间:2011-12-08 22:22:34

标签: c# events

我从我正在使用的特殊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上的特殊eventHandler,所以不太确定如何使用。

2 个答案:

答案 0 :(得分:1)

在评论讨论中,您似乎使用的是该事件没有通用类型的库版本,即签名是

public event EventHandler OnQuote;

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

myInstance.OnQuote += new EventHandler(doThis);

public void doThis(object sender, EventArgs e){

   var myArgs = (QuoteEventArgs)e;
   ...
}

答案 1 :(得分:0)

我的猜测是有两个名为QuoteEventArgs的类,可能是一个来自引用的DLL,另一个来自生成的代理。确保如果您已经使用了正确的用途。