我有两种方法:
private void RvListen_OPT()
private void RvListen_FUT()
在某个事件中,两个人都打电话:
void OnRvMessageReceived(object sender, SigRvMessageEventArgs args)
调用OnRvMessageReceived时,如何检查两种方法中的哪一种称为它?我知道可以使用对象发送方完成,但我不知道该怎么做。
答案 0 :(得分:3)
如果你可以编辑SigRvMessageEventArgs类,你可以为它添加一个字段,你在两次调用中设置不同。
答案 1 :(得分:1)
发件人将(通常)为您提供调用该事件的对象。它可能不是因为它由调用者来实际设置它。
那就是说,我不确定它是否重要。如果调用取决于谁调用它,可能需要将它们设置为单独的事件......或者,正如Jackson所提到的,args变量可以设置为允许OnRvMessageReceived事件可以响应该事件。
答案 2 :(得分:1)
如果您无法更改sender
以获取其他属性,请将SigRvMessageEventArgs
设置为字符串...但最好的方法是在可能的情况下修改SigRvMessageEventArgs。
private void RvListen_OPT()
{
OnRvMessageReceived("RvListn_OPT()", new SigRvMessageEventArgs())
}
private void RvListen_FUT()
{
OnRvMessageReceived("RvListn_FUT()", new SigRvMessageEventArgs())
}
void OnRvMessageReceived(object sender, SigRvMessageEventArgs args)
{
if(sender.ToString() == "RvListn_OPT()"){
// do work
}
else if(sender.ToString() == "RvListn_FUT()"){
// do work
}
}