C#事件
程序员文章站
2022-07-16 19:17:23
...
简单来说,要想理解事件,必先理解委托。只要委托明白了,事件也就自然而然的明白了。
事件和委托是连在一起的,我大概列一下:
(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();
}
}
}
输出结果如图:
————————————————————————————————
如有错误之处,欢迎批评指正。
上一篇: c#简易的金山打字游戏
下一篇: C#指定图片添加文字