事件(Event)是用户操作(如按键、单击、鼠标移动等)或某些事件(如系统生成的通知)。应用程序需要在事件发生时对其作出响应。事件用于进程间通信。
事件是在类中声明和引发的,并使用同一类或某些其他类中的委托与事件处理程序关联。包含事件的类用于发布事件。接受此事件的其他一些类称为订阅类,事件使用发布者-订阅者(publisher-subscriber)模型。
链接:https://www.learnfk.comhttps://www.learnfk.com/csharp/csharp-events.html
来源:LearnFk无涯教程网
发布者 - 是一个包含事件定义和委托的对象,事件-委托关联也定义在此对象中。
订阅者 - 是接受事件并提供事件处理程序的对象。发布类中的委托调用订阅类的方法。
若要在类中声明事件,首先必须声明事件的委托类型。如,
public delegate string MyDel(string str);
接下来,使用Event关键字-声明事件本身
event MyDel MyEvent;
上面的代码定义了一个名为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("Learnfk Point"); Console.WriteLine(result); } } }
编译并执行上述代码时,将生成以下输出-
Welcome Learnfk Point
祝学习愉快!(内容编辑有误?请选中要编辑内容 -> 右键 -> 修改 -> 提交!)