简单来说,要想理解事件,必先理解委托。只要委托明白了,事件也就自然而然的明白了。
事件和委托是连在一起的,我大概列一下:
(1)委托是事件的类型。前一篇文章我说过,委托可以看作是一个类,那么事件就是这个类的对象,准确来说是受到约束的委托对象。事件是引用类型,是一种特殊的委托。
(2)事件的创建必须借助于某个委托类型完成。事件和委托通常一起使用。
(3)事件发生都会有两方,一个是产生方,一个是接收方。产生方是引发事件的对象,接收方是获取、处理事件。
一般事件的声明有两种:
public class Eventdemo{public event EventHandler handleevent;}
public class EventDemo1{public delegate void EventDelegate(object sender,EventArgs e);public event EventDelegate DelegateEvent;}
在这里,由于在事件中使用了委托,因此需要在定义事件前先定义委托。
在定义事件后需要定义事件所使用的方法,并通过事件来调用委托。
事件的简单用法:
using System;namespace 事件{class Program{public delegate void Chat(); //定义委托public event Chat ChatEvent; //定义事件public void ChatHello() //委托中调用的方法{Console.WriteLine(\"Hello!\");}public void ChatEventTrigger() //触发事件的方法{ChatEvent();}static void Main(string[] args){Program program = new Program();program.ChatEvent = new Chat(program.ChatHello);//使用委托指向处理方法来实例化事件program.ChatEventTrigger(); //调用触发事件的方法Console.ReadKey();}}}
输出结果如图:
————————————————————————————————
如有错误之处,欢迎批评指正。