C#自定義事件 范例:監視變量變化


很多時候我們需要程序具有一種功能,就是當滿足某一條件時觸發某個動作,使用C#的事件機制就可以達到這個目的下面的例子是一個很好的演示,這段代碼實現了對一個變量的監視,一旦變量發生改變,就觸發動作

定義事件類:

  1.     class Event
  2.     {
  3.         public delegate void tempChange(object sender, EventArgs e);
  4.         public event tempChange OntempChange;
  5.         string temp;
  6.         public string Temp
  7.         {
  8.             get
  9.             {
  10.                 return temp;
  11.             }
  12.             set
  13.             {
  14.                 if (temp != value)
  15.                 {
  16.                     OntempChange(this, new EventArgs());
  17.                 }
  18.                 temp = value;
  19.             }
  20.         }
  21.     }
復制代碼

分析:
要定義一個事件,首先聲明事件和委托

具體格式如下:
聲明委托

  1. public delegate void 事件句柄函數(object sender,EventArgs e);
復制代碼


object用來傳遞事件的發生者,EventArgs用來傳遞事件的細節

下面定義一個此委托類型類型的事件

  1. public event 事件句柄函數 事件名;
復制代碼


在這里,我定義了一個名為OntempChange的事件,並在屬性訪問器里設定當讀取值與原值不同時觸發該事件





使用事件(部分代碼):

  1.     public partial class Form1 : Form
  2.     {
  3.         Event ven = new Event();
  4.         public Form1()
  5.         {
  6.             ven.OntempChange += new Event.tempChange(ven_OntempChange);
  7.             InitializeComponent();
  8.         }
  9.         void ven_OntempChange(object sender, EventArgs e)
  10.         {
  11.             MessageBox.Show(ven.Temp);
  12.         }
  13.         private void button1_Click(object sender, EventArgs e)
  14.         {
  15.             ven.Temp = textBox1.Text;
  16.         }
復制代碼

在C#中,使用+=運算符將事件綁定給函數,在這里我把OntempChange事件綁定給了ven_OntempChange函數,在下面我定義了這個函數,在這個函數里設定了觸發事件之后執行的相關操作(注意函數的參數)實際的運行效果就是,在文本框內輸入字符,按下按鈕后,如果你輸入的值和上一次的不同,就會彈出對話框顯示這個值~


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM