c#中自定義事件
c#語言中有77個關鍵字,其中delegate和event專門為c#中事件處理系統提供的。
delegate聲明定義一種引用類型,該類型可用于將方法用特定的簽名封裝。委托實例封裝靜態方法或實例方法。委托大致類似于 c++ 中的函數指針;但是,委托是類型安全和可靠的。
event指定一個事件。在c#的類中存在以下成員:域(fields)、屬性(properties)、方法(methods)、索引(indexs)、事件(events),其中事件(events)成員就是用來聲明一個類事件的。在類中聲明一個事件成員一般采用如下的語法形式:public event 委托名 事件名。
本程序是udp通信的ui測試程序,負責接收數據報文,打算要定義簡單的自定義事件,首先定義委托,然后定義事件類。
在文件delegate.cs中定義兩個委托:
namespace communication
{
public delegate void dgondatarecvfinished(object sender,bool e);//文件接收結束代理。
public delegate void dgondatarecvstart(object sender,bool e);//文件接收結束代理。
public delegate void dgondataarrived(object sender,udpeventargs e);//數據抵達代理.
自定義事件類udpeventargs也位于這個文件中,包括一個消息屬性和字節數組.
public class udpeventargs:eventargs
{
string msg="";
private byte[] recvdata=null;
public udpeventargs(){}
public string msg
{
set
{
msg=value;
}
}
public byte[] recvdata
{
set
{
recvdata=value;
}
get
{
return recvdata;
}
}
}
新事件類和三個委托定義完畢.
新聞熱點
疑難解答