C#資料報編程之測試程式

來源:互聯網
上載者:User

C#中自訂事件

C#語言中有77個關鍵字,其中delegateevent專門為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;
   }
  }
 }

新事件類別和三個委託定義完畢.

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.