AI智能
改变未来

C#事件

简单来说,要想理解事件,必先理解委托。只要委托明白了,事件也就自然而然的明白了。

事件和委托是连在一起的,我大概列一下:

(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();}}}

输出结果如图:
————————————————————————————————
如有错误之处,欢迎批评指正。

赞(0) 打赏
未经允许不得转载:爱站程序员基地 » C#事件