很多时候我们需要程序具有一种功能,就是当满足某一条件时触发某个动作,使用C#的事件机制就可以达到这个目的下面的例子是一个很好的演示,这段代码实现了对一个变量的监视,一旦变量发生改变,就触发动作
定义事件类:- class Event
- {
- public delegate void tempChange(object sender, EventArgs e);
- public event tempChange OntempChange;
- string temp;
- public string Temp
- {
- get
- {
- return temp;
- }
- set
- {
- if (temp != value)
- {
- OntempChange(this, new EventArgs());
- }
- temp = value;
- }
- }
- }
分析:
要定义一个事件,首先声明事件和委托具体格式如下:声明委托- public delegate void 事件句柄函数(object sender,EventArgs e);
object用来传递事件的发生者,EventArgs用来传递事件的细节下面定义一个此委托类型类型的事件
- public event 事件句柄函数 事件名;
在这里,我定义了一个名为OntempChange的事件,并在属性访问器里设定当读取值与原值不同时触发该事件使用事件(部分代码):
- public partial class Form1 : Form
- {
- Event ven = new Event();
- public Form1()
- {
- ven.OntempChange += new Event.tempChange(ven_OntempChange);
- InitializeComponent();
- }
- void ven_OntempChange(object sender, EventArgs e)
- {
- MessageBox.Show(ven.Temp);
- }
- private void button1_Click(object sender, EventArgs e)
- {
- ven.Temp = textBox1.Text;
- }
在C#中,使用+=运算符将事件绑定给函数,在这里我把OntempChange事件绑定给了ven_OntempChange函数,在下面我定义了这个函数,在这个函数里设定了触发事件之后执行的相关操作(注意函数的参数)实际的运行效果就是,在文本框内输入字符,按下按钮后,如果你输入的值和上一次的不同,就会弹出对话框显示这个值~