首页 > 编程语言 >C# 事件(Event)应用说明一

C# 事件(Event)应用说明一

时间:2024-09-28 08:51:48浏览次数:11  
标签:订阅 委托 publisher C# 事件 应用 声明 Event

一.C# 事件(Event)定义说明:

C# 事件(Event)是一种成员,用于将特定的事件通知发送给订阅者。事件通常用于实现观察者模式,它允许一个对象将状态的变化通知给其他对象,而不需要知道这些对象的具体细节。

事件(Event) 基本上说是一个用户操作,或者是一些提示信息,如系统生成的通知、按键输入、鼠标移动等等,应用程序需要在事件发生时响应事件,如弹出提示信息,报警,执行相应方法等。

关键点:

  • 声明委托:定义事件将使用的委托类型,委托是一个函数签名。
  • 声明事件:使用 event 关键字声明一个事件。
  • 触发事件:在适当的时候调用事件,通知所有订阅者。
  • 订阅和取消订阅事件:其他类可以通过 += 和 -= 运算符订阅和取消订阅事件。

二.通过事件使用委托说明:

事件在类中声明且生成,是通过使用同一个类或其他类中的委托与事件处理程序关联起来。包含事件的类用于发布事件。这就被称为 发布器(publisher)的 类。其他接受该事件的类被称为 订阅器(subscriber)的 类。事件就是使用 发布-订阅(publisher-subscriber) 模型。

发布器(publisher) 是一个包含事件和委托定义的对象。事件和委托之间的联系也定义在这个对象中。发布器(publisher)类的对象调用这个事件,并通知其他的对象。

订阅器(subscriber) 是一个接受事件并提供事件处理程序的对象。在发布器(publisher)类中的委托调用订阅器(subscriber)类中的方法(事件处理程序)。

三.声明事件(Event)格式:

在类的内部声明事件,首先必须声明该事件的委托类型。例如:

public delegate void MyHandler(string status);

然后,声明事件本身,使用 event 关键字:

// 基于上面的委托定义事件

public event MyHandler MyEventDoSomething;

 上面的代码定义了一个名为 MyHandler 的委托和一个名为 MyEventDoSomething 的事件,该事件在生成的时候会调用委托。

先写这么多吧。。。。。。

标签:订阅,委托,publisher,C#,事件,应用,声明,Event
From: https://blog.csdn.net/weixin_53520014/article/details/142584219

相关文章

  • C# 事件(Event)应用说明二
    简单示例如下一.界面显示: 二.源代码示例: //定义一个委托类型,用于事件处理程序publicdelegatevoidMyEventHandler(objectsender,EventArgse);//发布者类publicclassProcessBusinessClass{//声明事......
  • COMP 218 Fundamentals of Object-Oriented Programming
    ©Maynotbecopiedorduplicatedwithoutthepermissionoftheowner.COMP218FundamentalsofObject-OrientedProgrammingAssignment1Pleasenote:youareNOTallowedtoposttheassignment/solutionanywhereontheInternet.IntellectualPropertyrightsa......
  • 【C++】string中常用的接口
    目录前言常用接口1.有/无参string2.字符串相加3.string类对象的访问及遍历操作3.1普通遍历3.2迭代器遍历3.3范围for4.string类对象的修改操作前言今天分享一些个人认为string常用的接口,大多数资料来自于cplusplus,其他不常用的平常查阅资料使用即可。需要测试代......
  • Introducing Pricing-Display the Settings of a Condition Type
     step1 step2 step3 step4 step5 step6                           ......
  • 李宏毅机器学习2023-HW10-Adversarial Attack
    文章目录TaskBaselineFGSM(FastGradientSignMethod(FGSM)I-FGSM(IterativeFastGradientSignMethod)MI-FGSM(MomentumIterativeFastGradientSignMethod)M-DI2-FGSM(DiverseInputMomentumIterativeFastGradientSignMethod)ReportfgsmattackJepgCom......
  • C语言 16 系统库
    前面了解了如何使用#include引入其他文件,接着来了解一下系统提供的一些常用库。字符串计算字符串长度:#include<stdio.h>#include<string.h>intmain(){char*c="HelloWorld!";//使用strlen计算长度,注意返回值类型是size_t(别名而已,本质上就是unsignedlong)......
  • 前端框架对比及选择:React、Vue、Angular的深度剖析
    前端框架对比及选择:React、Vue、Angular的深度剖析在前端开发领域,框架的选择一直是开发者和团队面临的重要决策之一。随着技术的不断演进,市场上涌现了众多前端框架,但其中React、Vue和Angular无疑是最为流行和备受关注的三大框架。本文将对这三个框架进行详细对比,帮助开发者......
  • [Angular] 从零开始使用 Angular CLI 创建 Angular 项目
    一、安装Node.js......
  • C语言 16 系统库
    前面了解了如何使用#include引入其他文件,接着来了解一下系统提供的一些常用库。字符串计算字符串长度:#include<stdio.h>#include<string.h>intmain(){char*c="HelloWorld!";//使用strlen计算长度,注意返回值类型是size_t(别名而已,本质上就是unsigned......
  • Karmada新版本发布,支持联邦应用跨集群滚动升级
    本文分享自华为云社区《Karmadav1.11版本发布!新增应用跨集群滚动升级能力》,作者:云容器大未来。Karmada是开放的多云多集群容器编排引擎,旨在帮助用户在多云环境下部署和运维业务应用。凭借兼容Kubernetes原生API的能力,Karmada可以平滑迁移单集群工作负载,并且仍可保持与K......