欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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#语言特性