我从我正在使用的特殊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,所以不太确定如何使用。
答案 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,另一个来自生成的代理。确保如果您已经使用了正确的用途。