C#自定義事件簡單描述
C#有很多值得學習的地方,這里我們主要介紹C#自定義事件,包括介紹delegate和event專門為C#中事件處理系統提供的等方面。
C#自定義事件
C#語言中有77個關鍵字,其中delegate和event專門為C#中事件處理系統提供的。
delegate聲明定義一種引用類型,該類型可用于將方法用特定的簽名封裝。委托實例封裝靜態方法或實例方法。委托大致類似于 C++ 中的函數指針;但是,委托是類型安全和可靠的。
event指定一個事件。在C#的類中存在以下成員:域(Fields)、屬性(Properties)、方法(Methods)、索引 (Indexs)、事件(Events),其中事件(Events)成員就是用來聲明一個類事件的。在類中聲明一個事件成員一般采用如下的語法形式:public event 委托名 事件名。
本程序是UDP通信的UI測試程序,負責接收數據報文,打算要定義簡單的C#自定義事件,首先定義委托,然后定義事件類。
在文件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);//數據抵達代理.
C#自定義事件類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;
- }
- }
- }
【編輯推薦】