Events

优质
小牛编辑
131浏览
2023-12-01

Events是用户操作,例如按键,点击,鼠标移动等,或某些事件,例如系统生成的通知。 应用程序需要在事件发生时对其进行响应。 例如,中断。 事件用于进程间通信。

使用代理与事件

事件在类中声明和引发,并使用同一类或其他类中的委托与事件处理程序相关联。 包含事件的类用于发布事件。 这称为publisher类。 接受此事件的其他一些类称为subscriber类。 事件使用publisher-subscriber模型。

publisher是包含事件和委托定义的对象。 事件委托关联也在此对象中定义。 发布者类对象调用该事件,并将其通知给其他对象。

subscriber是接受事件并提供事件处理程序的对象。 发布者类中的委托调用订阅者类的方法(事件处理程序)。

宣布活动

要在类中声明事件,首先必须声明事件的委托类型。 例如,

public delegate string MyDel(string str);

接下来,使用event关键字声明事件本身 -

event MyDel MyEvent;

上面的代码定义了一个名为BoilerLogHandler的委托和一个名为BoilerLogHandler的事件,该事件在引发时调用委托。

例子 (Example)

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("IOWIKI");
         Console.WriteLine(result);
      }
   }
}

编译并执行上述代码时,会产生以下结果 -

Welcome IOWIKI