返回顶部
首页 > 资讯 > 精选 >C#基于自定义事件EventArgs怎么实现发布订阅模式
  • 170
分享到

C#基于自定义事件EventArgs怎么实现发布订阅模式

2023-06-30 12:06:42 170人浏览 独家记忆
摘要

这篇文章主要介绍“C#基于自定义事件EventArgs怎么实现发布订阅模式”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“C#基于自定义事件EventArgs怎么实现发布订阅模式”文章能帮助大家解决问

这篇文章主要介绍“C#基于自定义事件EventArgs怎么实现发布订阅模式”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“C#基于自定义事件EventArgs怎么实现发布订阅模式”文章能帮助大家解决问题。

一、事件参数

    //事件参数    class CustomEventArgs:EventArgs    {        public CustomEventArgs( string message)        {            Message = message;        }        public string Message { get; set; }    }

二、事件发布者

    //事件发布者:事件的定义和调用,触发事件也可以写在这里面    class Publisher    {        public event EventHandler<CustomEventArgs> CustomEvent;        public void DoSomething()        {            //调用之前可以在这里写一些其他的东西            //            OnCustomEvent(new CustomEventArgs("我是事件参数"));        }        //在受保护的虚方法中包装事件的调用 ,这样就允许派生类重写调用行为        protected virtual void OnCustomEvent(CustomEventArgs e)        {            CustomEvent?.Invoke(this, e);        }    }

三、事件订阅者

    //事件订阅者:事件方法编写和订阅功能    class Subscriber    {        private readonly string Str;        ////订阅的动作要在这里面了,所以才要传过来发布者        public Subscriber( string str,Publisher publisher)        {            Str = str;            //订阅事件            publisher.CustomEvent += HanderCustomEvent;        }        private void HanderCustomEvent(object sender, CustomEventArgs e)        {            //在这里做想做的事件            Console.WriteLine($"发布者:{sender.GetType()},订阅者:{Str},参数是:{e.Message}");        }    }    //事件订阅者:事件方法编写和订阅功能    class Subscriber2    {        private readonly string Str;        ////订阅的动作要在这里面了,所以才要传过来发布者        public Subscriber2(string str, Publisher publisher)        {            Str = str;            //订阅事件            publisher.CustomEvent += HanderCustomEvent;        }        private void HanderCustomEvent(object sender, CustomEventArgs e)        {            //在这里做想做的事件            Console.WriteLine($"发布者:{sender.GetType()},订阅者:{Str},参数是:{e.Message}");        }    }

四、调用事件

        static void Main(string[] args)        {            Publisher publisher = new Publisher();            Subscriber subscriber1 = new Subscriber("subscriber1", publisher);            Subscriber2 subscriber2 = new Subscriber2("subscriber2", publisher);            //调用引发事件的方法            publisher.DoSomething();            Console.ReadKey();        }

关于“C#基于自定义事件EventArgs怎么实现发布订阅模式”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注编程网精选频道,小编每天都会为大家更新不同的知识点。

--结束END--

本文标题: C#基于自定义事件EventArgs怎么实现发布订阅模式

本文链接: https://lsjlt.com/news/328636.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • C#基于自定义事件EventArgs实现发布订阅模式
    一、事件参数 //事件参数 class CustomEventArgs:EventArgs { public CustomEventArgs(...
    99+
    2024-04-02
  • C#基于自定义事件EventArgs怎么实现发布订阅模式
    这篇文章主要介绍“C#基于自定义事件EventArgs怎么实现发布订阅模式”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“C#基于自定义事件EventArgs怎么实现发布订阅模式”文章能帮助大家解决问...
    99+
    2023-06-30
  • spring发布订阅模式怎么实现
    在Spring中,可以使用Spring的事件机制来实现发布订阅模式。 创建事件对象:首先,需要创建一个事件对象,该对象包含了需要发...
    99+
    2024-02-29
    spring
  • node.js中怎么实现发布订阅模式
    node.js中怎么实现发布订阅模式,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。实例如下://导入内置模块 let Event...
    99+
    2024-04-02
  • JavaScript怎么利用发布订阅模式编写事件监听函数
    这篇“JavaScript怎么利用发布订阅模式编写事件监听函数”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“JavaScri...
    99+
    2023-07-06
  • 怎么使用Node.js的内置模块event实现发布订阅模式
    这篇文章主要介绍了怎么使用Node.js的内置模块event实现发布订阅模式的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇怎么使用Node.js的内置模块event实现发布订阅...
    99+
    2024-04-02
  • C#怎么为控件添加自定义事件及自定义触发
    本文小编为大家详细介绍“C#怎么为控件添加自定义事件及自定义触发”,内容详细,步骤清晰,细节处理妥当,希望这篇“C#怎么为控件添加自定义事件及自定义触发”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。先随便搞个事件...
    99+
    2023-06-30
  • CRM中间件里的订阅者模式怎么实现
    本篇内容主要讲解“CRM中间件里的订阅者模式怎么实现”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“CRM中间件里的订阅者模式怎么实现”吧!从事务码SMW01里能观察到一个BDOC可能被发送往不止...
    99+
    2023-06-04
  • 基于Qt怎么实现可拖动自定义控件
    本篇内容介绍了“基于Qt怎么实现可拖动自定义控件”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!使用QT实现自定义类卡牌控件Card,使其能在...
    99+
    2023-07-05
  • 基于Redis实现分布式单号及分布式ID(自定义规则生成)
    目录背景Redis实现方式代码实例单号生成枚举单号生成工具类单号生成接口单号生成接口实现使用测试总结背景 一些业务背景下,业务要求单号需要有区分不同的前缀,那么在分布式的架构下如何自...
    99+
    2024-04-02
  • Laravel基于reset怎么实现分布式事务
    这篇文章主要讲解了“Laravel基于reset怎么实现分布式事务”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Laravel基于reset怎么实现分布式事务”吧!    ...
    99+
    2023-06-25
  • 怎么用redis发布订阅方式实现简易的消息系统
    这篇文章主要讲解了“怎么用redis发布订阅方式实现简易的消息系统”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么用redis发布订阅方式实现简易的消息系统”吧!I. 基本使用1. 配置我...
    99+
    2023-06-19
  • 基于Vue实现自定义组件的方式引入图标
    前言 在项目开发中,使用图标的方式有很多种,可以在iconfont上面找到合适的图标,通过http或者直接下载使用,这里我分享一种通过实现自定义组件的方式引入图标。 搭建环境 这里...
    99+
    2024-04-02
  • 怎么用javascript实现自定义事件功能
    这篇文章主要介绍“怎么用javascript实现自定义事件功能”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“怎么用javascript实现自定义事件功能”文章能帮助大家解决问题。概述自定义事件很难派...
    99+
    2023-06-17
  • C++并发编程:如何实现基于事件驱动的并发模型?
    基于事件驱动的并发模型是 c++++ 中一种流行的并发编程范式,它使用事件循环处理来自不同来源的事件。事件循环是一个无限循环,检索和处理事件队列中的事件,通常通过调用回调函数。在 c++...
    99+
    2024-05-06
    c++ 并发编程
  • ASP.NET基于事件的异步模式与异步Action怎么实现
    本篇内容主要讲解“ASP.NET基于事件的异步模式与异步Action怎么实现”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“ASP.NET基于事件的异步模式与异步Action怎么实现”吧!尽管在A...
    99+
    2023-06-17
  • 基于SpringSecurity的@PreAuthorize怎么实现自定义权限校验
    这篇文章主要介绍“基于SpringSecurity的@PreAuthorize怎么实现自定义权限校验”,在日常操作中,相信很多人在基于SpringSecurity的@PreAuthorize怎么实现自定义权限校验问题上存在疑惑,小编查阅了各...
    99+
    2023-07-05
  • 怎么实现Vue 自定义组件中hover事件以及 v-model
    这期内容当中小编将会给大家带来有关怎么实现Vue 自定义组件中hover事件以及 v-model,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。在CSS中,很容易在鼠标ho...
    99+
    2024-04-02
  • 怎么基于Kotlin实现一个简单的TCP自定义协议
    这篇文章主要讲解了“怎么基于Kotlin实现一个简单的TCP自定义协议”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么基于Kotlin实现一个简单的TCP...
    99+
    2024-04-02
  • 基于rabbitmq延迟插件怎么实现分布式延迟任务
    本文小编为大家详细介绍“基于rabbitmq延迟插件怎么实现分布式延迟任务”,内容详细,步骤清晰,细节处理妥当,希望这篇“基于rabbitmq延迟插件怎么实现分布式延迟任务”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知...
    99+
    2023-06-26
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作