上一节:
下一节:

  C# 事件

  • 事件

    事件是用户操作,例如按键,单击,鼠标移动等,或某些事件(例如系统生成的通知)。应用程序需要在事件发生时做出响应。例如,中断。事件用于进程间通信。
  • 对事件使用代理

    事件是在类中声明和引发的,并使用同一类或某些其他类中的委托与事件处理程序关联。包含事件的类用于发布事件。这称为发布者类。接受此事件的其他一些类称为订户类。事件使用发布者-订阅者模型。
    发布者是包含事件和委托的定义的对象。事件-委托关联也定义在此对象中。发布者类对象将调用该事件,并将其通知其他对象。
    订阅者是接受该事件,并提供一个事件处理程序的对象。发布者类中的委托调用订阅者类的方法(事件处理程序)。
  • 声明事件

    要在一个类内声明一个事件,首先,必须为事件声明一个委托类型:
    
    public delegate string BoilerLogHandler(string str);
    
    然后,使用event关键字声明事件-
    
    event BoilerLogHandler BoilerEventLog;
    
    前面的代码定义了一个名为代表 BoilerLogHandler 和命名的事件 BoilerEventLog,当它升起它调用委托。
    
    using System;
    
    namespace SampleApp {
       public delegate string MyDel(string str);
            
       class EventProgram {
          event MyDel MyEvent;
                    
          public EventProgram() {
             this.MyEvent += new MyDel(this.WelcomeUser);
          }
          public string WelcomeUser(string username) {
             return "Welcome " + username;
          }
          static void Main(string[] args) {
             EventProgram obj1 = new EventProgram();
             string result = obj1.MyEvent("jc2182");
             Console.WriteLine(result);
          }
       }
    }
    
    尝试一下
    编译并执行上述代码后,将产生以下结果-
    
    Welcome jc2182
    
上一节:
下一节: