- C# 基础教程
- C# - 主页
- C# - 概述
- C# - 环境
- C# - 程序结构
- C# - 基本语法
- C# - 数据类型
- C# - 类型转换
- C# - 变量
- C# - 常量
- C# - 运算符
- C# - 决策
- C# - 循环
- C# - 封装
- C# - 方法
- C# - 可空值
- C# - 数组
- C# - 字符串
- C# - 结构
- C# - 枚举
- C# - 类
- C# - 继承
- C# - 多态性
- C# - 运算符重载
- C# - 接口
- C# - 命名空间
- C# - 预处理器指令
- C# - 正则表达式
- C# - 异常处理
- C# - 文件 I/O
- C# 高级教程
- C# - 属性
- C# - 反射
- C# - 属性
- C# - 索引器
- C# - 委托
- C# - 事件
- C# - 集合
- C# - 泛型
- C# - 匿名方法
- C# - 不安全代码
- C# - 多线程
- C# 有用资源
- C# - 问题与解答
- C# - 快速指南
- C# - 有用的资源
- C# - 讨论
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("Tutorials Point"); Console.WriteLine(result); } } }
当上面的代码被编译并执行时,它会产生以下结果 -
Welcome Tutorials Point