[C#] class內設計Event、Handler傳遞事件和內容

子類別內

當設計一個子類別,去處理UART、Serial、TCP、UDP、HTTP、MQTT等部分的Receive時。
如何設計一個事件、當上述事件的callback收到時,主動callback給呼叫class者

讓呼叫者去接收處理這些資訊的方法

請參考如下

子類別內新增事件Handler

//新增一個Handler,會幫忙傳送message
public delegate void ReceiveMessageEventHandler(string message);
//新增一個事件的實例ReceiveMessageNotify=>用於觸發這個事件用
//根據Handler、可以帶入參數message
public event ReceiveMessageEventHandler ReceiveMessageNotify;

子類別內,需要觸發這個事件的地方呼叫

 /*
  * 觸發事件,傳入msg到message事件
  */
 ReceiveMessageNotify(msg);

主類別內

主類別內,註冊這個Handler

  //註冊ReceiveMessageNotify事件Handler由mqttReveiveMessagec函數處理
  //內容帶著message
  mqtt.ReceiveMessageNotify += new CHT_MQTT.ReceiveMessageEventHandler(mqttReveiveMessage);

主類別內,實作mqttReveiveMessage這個函數

void mqttReveiveMessage(string message)
{
   Debug.WriteLine("===mqttReveiveMessage===");
   Debug.WriteLine("msg\r\n" + message);
}

發佈留言