SockSTap S O C K S T A P

C#中的委托和事件_C#教程

首页 / 新闻资讯 / 正文

一、定义委托

delegate void StudentDelegate();//【1】定义一个委托

二、定义一个调用和定义事件的类

    /// <summary>      ///定义事件和调用 事件一定要放在一个类里面      /// </summary>      class InvokeDefine //【2】定义一个调用和定义事件的类      {          public event StudentDelegate StudentEvent;          public void Invoke()          {              StudentEvent?.Invoke();//?.Null检查运算符          }      }

三、订阅者

    class EventFunction //【3】订阅者      {          public void Student1()          {              Console.WriteLine("我是订阅者1");          }          public void Student2()          {              Console.WriteLine("我是定订阅者2");          }      }

四、订阅事件

        static void Main(string[] args)          {              EventFunction eventFunction = new EventFunction();              InvokeDefine invokeDefine = new InvokeDefine();              invokeDefine.StudentEvent += eventFunction.Student1;//【4】订阅事件              invokeDefine.StudentEvent += eventFunction.Student2;              invokeDefine.Invoke();                            Console.ReadKey();          }

五、总结

第一点:在定义事件类的外部,他是不能使用=号来操作,只能用+=。
第二点:在定义事件类的外部不能调用 事件。
第三点:事件就是在委托的前面增加一个event关键字。