📅  最后修改于: 2020-12-28 05:14:41             🧑  作者: Mango
事件是用户操作,例如按键,单击,鼠标移动等,或某些事件(例如系统生成的通知)。应用程序需要在事件发生时做出响应。例如,中断。事件用于进程间通信。
事件在类中声明和引发,并使用同一类或其他类中的委托与事件处理程序关联。包含事件的类用于发布事件。这称为发布者类。接受此事件的其他一些类称为订户类。事件使用发布者-订阅者模型。
发布者是一个包含事件定义和委托的对象。事件-委托关联也定义在此对象中。发布者类对象将调用该事件,并将其通知其他对象。
订户是一个接受事件并提供事件处理程序的对象。发布者类中的委托调用订阅者类的方法(事件处理程序)。
要在类内声明事件,首先,必须为even声明一个委托类型:
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("Tutorials Point");
Console.WriteLine(result);
}
}
}
编译并执行上述代码后,将产生以下结果-
Welcome Tutorials Point