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

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

本文介绍了C#基于自定义事件EventArgs实现发布订阅模式的方法,并通过示例代码进行了详细介绍。对大家的学习或者工作都有一定的参考价值,有需要的朋友可以参考一下。

一、事件参数

//事件参数

类CustomEventArgs:EventArgs

{

公共CustomEventArgs(字符串消息)

{

消息=消息;

}

公共字符串消息{ get设置;}

}

二、事件发布者

//事件发布者:事件的定义和调用,触发事件也可以在这里写。

类别发布者

{

公共事件EventHandlerCustomEventArgs CustomEvent;

public void DoSomething()

{

//在调用之前,可以在这里写点别的

//

OnEvent(新的自定义事件('我是事件参数'));

}

//将事件的调用包装在受保护的虚方法中,这允许派生类重写调用行为。

受保护的虚拟void OnCustomEvent(CustomEventArgs e)

{

CustomEvent?调用(this,e);

}

}

三、事件订阅者

//事件订阅者:事件方法编写和订阅函数。

类别订户

{

私有只读字符串Str

////订阅操作将在这里进行,因此必须将其发送给发布者。

公共订阅者(字符串,发布者发布者)

{

Str=str

//订阅事件

出版商。CustomEvent=HanderCustomEvent

}

私有void HanderCustomEvent(对象发送方,客户事件参数e)

{

//在这里做你想做的事情

控制台。WriteLine($)发布者:{发件人。GetType()},订阅方:{Str},参数:{ e . Message } ');

}

}

//事件订阅者:事件方法编写和订阅函数。

类别订户2

{

私有只读字符串Str

////订阅操作将在这里进行,因此必须将其发送给发布者。

公共订阅者2(字符串,发布者发布者)

{

Str=str

//订阅事件

出版商。CustomEvent=HanderCustomEvent

}

私有void HanderCustomEvent(对象发送方,客户事件参数e)

{

//在这里做你想做的事情

控制台。WriteLine($)发布者:{发件人。GetType()},订阅方:{Str},参数:{ e . Message } ');

}

}

四、调用事件

静态void Main(string[] args)

{

Publisher Publisher=new Publisher();

subscriber1=新订户(“subscriber1”,发布者);

Subscriber2 subscriber2=新的Subscriber2('subscriber2 ',publisher);

//调用引发事件的方法

出版商。do something();

控制台。read key();

}

关于C#实现基于自定义事件EventArgs的发布-订阅模式的文章到此结束。希望对大家的学习有帮助,也希望大家多多支持。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

相关文章阅读

  • 设计一个简单的C#控制台应用程序,C#控制台程序,C# 创建控制台应用程序
  • 深入解析windows第8版,深入解析C#(第4版)
  • 数组代码,c# 数组操作,C# 数组实例介绍(图文)
  • 学会C#要多久,学会c#要多久,c#学习之30分钟学会XAML
  • 回溯法01背包问题c,回溯法求解01背包问题伪代码,C#使用回溯法解决背包问题实例分析
  • xml文件转义字符,xml转意字符,C# XML中的转义字符操作
  • winform 进度条控件,c# 进度条使用
  • winform 进度条控件,c# 进度条使用,C#使用winform实现进度条效果
  • winform backgroundworker,c# isbackground
  • winform backgroundworker,c# isbackground,C# BackgroundWorker用法详解
  • lua与c#交互,lua c#
  • lua与c#交互,lua c#,ToLua框架下C#与Lua代码的互调操作
  • linq c#,linq原理 c#
  • linq c#,linq原理 c#,c#中LINQ的基本用法实例
  • java decimal保留两位小数,sql中decimal函数保留2位小数,C#中decimal保留2位有效小数的实现方法
  • 留言与评论(共有 条评论)
       
    验证码: