我正在使用具有以下EventHandler的API:
static EventHandler<GPRSArgs> EventStateChanged
如何在我的客户端应用程序中接收这些事件,以便我能对它们作出反应?
答案 0 :(得分:1)
刚刚加入此事件。您提供的代码很少,但假设您的类名是MyClass,则可以执行
MyClass.EventStateChanged += MyEventHandler
带
void MyEventHandler(object sender, GRPSArgs e)
{
// ...
}
或与lambda联系:
MyClass.EventStateChanged += (sender, e) => { /* whatever you want */ }
答案 1 :(得分:1)
订阅该活动。
拉姆达:
EventStateChanged += (sender, gprsArgs) => { do your thing }
委托:
void Listener(object sender, GPRSArgs args)
{
do your thing
}
EventStateChanged += Listener;
答案 2 :(得分:0)
订阅它,就像任何其他活动一样。
我认为APIClass
是API与EventStateChanged
事件的类。
您的代码中某处您订阅了以下活动:
APIClass.EventStateChanged += EventStateChangedHandler;
这假设你有一个方法如下:
private void EventStateChangedHandler(object sender, GPRSArgs e)
{
// Code to react to the event.
}
您可以在一行中使用lambda:
执行此操作APIClass.EventStateChanged += (sender, e) => { /* Code to react to the event */ }
答案 3 :(得分:0)
我假设您在声明中遗漏了public
和event
:
public class GPRSThingy
{
public static event EventHandler< GPRSArgs > EventStateChanged;
...
}
然后使用它
void DoSomething(GPRSArgs e)
{
// whatever
}
var gprstThingy = new GPRSThingy();
gprstThingy.EventStateChanged += (sender, e) => { DoSomething(e); };
排序。
答案 4 :(得分:0)
您需要订阅该活动:
theClassWithEvent.EventStateChanged +=
delegate (object sender, GRPSArgs e)
{
//process the event
};
还需要调用该事件,以便在theClassWithEvent
:
if (EventStateChanged != null)
{
EventStateChanged(someObject, new GRPSArgs());
}
请注意上面使用someObject
,因为公开的事件为static
,您无法通过this
和sender
,因此需要发送一些内容。但是,既然你说你是从API中使用它,我想我们可以假设你不需要进行这个调用,只应该订阅这个事件。