C#自定義事件簡單描述
C#有很多值得學(xué)習(xí)的地方,這里我們主要介紹C#自定義事件,包括介紹delegate和event專門為C#中事件處理系統(tǒng)提供的等方面。
C#自定義事件
C#語言中有77個關(guān)鍵字,其中delegate和event專門為C#中事件處理系統(tǒng)提供的。
delegate聲明定義一種引用類型,該類型可用于將方法用特定的簽名封裝。委托實(shí)例封裝靜態(tài)方法或?qū)嵗椒?。委托大致類似?C++ 中的函數(shù)指針;但是,委托是類型安全和可靠的。
event指定一個事件。在C#的類中存在以下成員:域(Fields)、屬性(Properties)、方法(Methods)、索引 (Indexs)、事件(Events),其中事件(Events)成員就是用來聲明一個類事件的。在類中聲明一個事件成員一般采用如下的語法形式:public event 委托名 事件名。
本程序是UDP通信的UI測試程序,負(fù)責(zé)接收數(shù)據(jù)報文,打算要定義簡單的C#自定義事件,首先定義委托,然后定義事件類。
在文件Delegate.cs中定義兩個委托:
- namespace Communication
- {
- public delegate void DgOnDataRecvFinished(object sender,bool e);//文件接收結(jié)束代理。
- public delegate void DgOnDataRecvStart(object sender,bool e);//文件接收結(jié)束代理。
- public delegate void DgOnDataArrived(object sender,UdpEventArgs e);//數(shù)據(jù)抵達(dá)代理.
C#自定義事件類UdpEventArgs也位于這個文件中,包括一個消息屬性和字節(jié)數(shù)組.
- 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;
- }
- }
- }
【編輯推薦】


















