C# 对C中API触发的事件作出反应#
我使用的API具有以下EventHandler:C# 对C中API触发的事件作出反应#,c#,events,C#,Events,我使用的API具有以下EventHandler: static EventHandler<GPRSArgs> EventStateChanged 静态EventHandler EventStateChanged 如何在客户端应用程序中接收这些事件,以便对其作出反应?只需挂接到此事件即可。您只提供了很少的代码,但假设您的类名是MyClass,您可以这样做 MyClass.EventStateChanged += MyEventHandler 与 或者和一只羔羊搭讪: MyClas
static EventHandler<GPRSArgs> EventStateChanged
静态EventHandler EventStateChanged
如何在客户端应用程序中接收这些事件,以便对其作出反应?只需挂接到此事件即可。您只提供了很少的代码,但假设您的类名是MyClass,您可以这样做
MyClass.EventStateChanged += MyEventHandler
与
或者和一只羔羊搭讪:
MyClass.EventStateChanged += (sender, e) => { /* whatever you want */ }
APIClass.EventStateChanged += (sender, e) => { /* Code to react to the event */ }
订阅它,就像订阅任何其他活动一样 我假设
APIClass
是API与EventStateChanged
事件一起拥有的类
在代码的某个地方,您订阅了以下活动:
APIClass.EventStateChanged += EventStateChangedHandler;
这假设您有如下方法:
private void EventStateChangedHandler(object sender, GPRSArgs e)
{
// Code to react to the event.
}
您可以使用lambda在一行中完成此操作:
MyClass.EventStateChanged += (sender, e) => { /* whatever you want */ }
APIClass.EventStateChanged += (sender, e) => { /* Code to react to the event */ }
订阅活动 拉姆达:
EventStateChanged += (sender, gprsArgs) => { do your thing }
代表:
void Listener(object sender, GPRSArgs args)
{
do your thing
}
EventStateChanged += Listener;
我假设您在声明中遗漏了一个
公共
和一个事件
:
public class GPRSThingy
{
public static event EventHandler< GPRSArgs > EventStateChanged;
...
}
差不多。您需要订阅活动:
theClassWithEvent.EventStateChanged +=
delegate (object sender, GRPSArgs e)
{
//process the event
};
还需要从ClassWithEvent中调用该事件以提醒所有订阅者:
if (EventStateChanged != null)
{
EventStateChanged(someObject, new GRPSArgs());
}
注意上面使用的someObject
,因为公开的事件是静态的
,您不能传递这个
,因此发送方,需要发送一些适当的东西。不过,既然您说您是从API使用这个,我想我们可以假设你不需要打这个电话,只需要订阅活动