Csharp 简明教程
C
Events 是用户操作,如按键、单击、鼠标移动等,或一些事件,如系统生成的通知。应用程序需要在事件发生时对其进行响应。例如,中断。事件用于进程间通信。
Using Delegates with Events
事件在一个类中声明和引发,并使用委托与同一类或其他一些类中的事件处理程序关联。类包含用于发布事件的事件。这称为 publisher 类。接受此事件的一些其他类称为 subscriber * class. Events use the *publisher-subscriber 模型。
publisher 是一个包含事件定义和委托的对象。事件委托关联也在此对象中定义。发布者类对象调用事件并将其通知给其他对象。
subscriber 是一个接受事件并提供事件处理程序的对象。发布者类中的委托调用订阅者类的类(事件处理程序)。
Declaring Events
要在类中声明一个事件,首先,你必须为事件声明一个委托类型,如下所示:
public delegate string BoilerLogHandler(string str);
然后,使用 event 关键字声明事件 -
event BoilerLogHandler BoilerEventLog;
前面的代码定义了一个名为 BoilerLogHandler 的委托和一个名为 BoilerEventLog 的事件,该事件在引发时调用委托。
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("Tutorials Point");
Console.WriteLine(result);
}
}
}
编译并执行上述代码后,将产生以下结果 −
Welcome Tutorials Point