觸發的事件,我使用的是具有以下事件處理程序的API:反應,從而API在C#
static EventHandler<GPRSArgs> EventStateChanged
我怎麼能接受我的客戶端應用程序這些事件,這樣我可以給他們作何反應?
觸發的事件,我使用的是具有以下事件處理程序的API:反應,從而API在C#
static EventHandler<GPRSArgs> EventStateChanged
我怎麼能接受我的客戶端應用程序這些事件,這樣我可以給他們作何反應?
訂閱活動。
拉姆達:
EventStateChanged += (sender, gprsArgs) => { do your thing }
代表:
void Listener(object sender, GPRSArgs args)
{
do your thing
}
EventStateChanged += Listener;
剛入此事件。你給了一些代碼,但假設你的類名爲MyClass的你可以做
MyClass.EventStateChanged += MyEventHandler
與
void MyEventHandler(object sender, GRPSArgs e)
{
// ...
}
或鉤住了一個拉姆達:
MyClass.EventStateChanged += (sender, e) => { /* whatever you want */ }
訂閱它,你會任何其他事件。
我認爲APIClass
是API與EventStateChanged
事件相關的類。
某處在你的代碼中訂閱如下事件:
APIClass.EventStateChanged += EventStateChangedHandler;
這裏假設你有一個方法如下:
private void EventStateChangedHandler(object sender, GPRSArgs e)
{
// Code to react to the event.
}
你可以在一行中做到這一點,用拉姆達:
APIClass.EventStateChanged += (sender, e) => { /* Code to react to the event */ }
我假設你離開了一個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); };
排序
您需要訂閱事件:
theClassWithEvent.EventStateChanged +=
delegate (object sender, GRPSArgs e)
{
//process the event
};
本次活動還將需要被調用,以提醒所有用戶,從theClassWithEvent
內:
if (EventStateChanged != null)
{
EventStateChanged(someObject, new GRPSArgs());
}
注意使用上述someObject
,因爲暴露的事件是static
,你不能通過this
和sender
,因此需要發送一些東西。雖然,既然你說你正在使用API,我認爲我們可以假設你不需要打這個電話,而只應該訂閱這個事件。