标签:
今天重温了一下事件的概念,对事件的理解也更加深刻一点。说到底事件就是一个特殊的委托。当我们去定义一个事件时,我们一旦触发了这个事件,意味着我们同时调用了背后的一系列方法。我们知道委托或者匿名函数(匿名方法和Lambda表达式)都是通过委托去传递一个方法参数,来达到我们的要求。如果说,我们要处理一个功能,需要一些列的动作才能完成,意味着我们需要传递多种方法,并且还要以一定的顺序来执行,我们就可以使用事件这个东东。换句话说,一旦我们绑定好了一个事件的一系列方法,当触发这个事件时,一些的方法,就会被顺利的连续执行。以求能更好的完成功能。
废话不多说,相信程序员都对代码有种莫名的亲切感,看代码更能体会其妙处。下面用几行简短的代码说明问题:
public partial class Form1 : Form { public Form1() { InitializeComponent(); //订阅事件,与两个方法绑定(message1和message2) smg += new showMessage(message); smg += new showMessage(message1); } //声明一个专门传递消息的委托smg public event showMessage smg; private void message() { MessageBox.Show("你叫什么名字"); } private void message1() { MessageBox.Show("我的名字叫肖凯"); } private void button1_Click(object sender, EventArgs e) { //直接调用事件,触发smg事件。完成两句话的执行。 smg(); }
自定义事件就是这样简单。关键还是能应用到实际中。。。加油!
标签:
原文地址:http://my.oschina.net/RabbitXiao/blog/489333