主页
  • 主页
  • 分类
  • 热文
  • 教程
  • 面试
  • 标签
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# 异常
C# 文件与流

C# 高级

C# 属性(Attributes)
C# 反射
C# 属性(Properties)
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# 多态性
C# 操作符重载
C# 接口
C# 命名空间
C# 预处理
C# 正则表达式
C# 异常
C# 文件与流

高级

C# 属性(Attributes)
C# 反射
C# 属性(Properties)
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
上一章 下一章
阅读号二维码

关注阅读号

联系二维码

联系我们

© 2024 Yoagoa. All rights reserved.

粤ICP备18007391号

站点地图