本文介绍了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的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。