当前位置: 首页 > 编程语言 > C#

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

时间:2023-04-10 21:55:59 C#

1.事件参数//事件参数classCustomEventArgs:EventArgs{publicCustomEventArgs(stringmessage){Message=message;}公共字符串消息{得到;放;}}2.EventPublisher//事件发布者:事件定义和调用,触发事件也可以写在里面classPublisher{publiceventEventHandlerCustomEvent;publicvoidDoSomething(){//可以在Writesomethingherehere之前调用//OnCustomEvent(newCustomEventArgs("Iamtheeventparameter"));}//将事件的调用包装在受保护的虚方法中,允许派生类覆盖调用行为protectedvirtualvoidOnCustomEvent(CustomEventArgse){CustomEvent?.Invoke(this,e);}}3.EventSubscriber//事件订阅者:事件方法编写和订阅函数类订阅者{privatereadonlystringStr;////订阅动作一定要在这里,所以要传发布者publicSubscriber(stringstr,Publisherpublisher){str=str;//订阅事件publisher.CustomEvent+=HanderCustomEvent;}privatevoidHanderCustomEvent(objectsender,CustomEventArgse){//在这里做你想做的Console.WriteLine($"Publisher:{sender.GetType()},Subscriber:{Str},参数是:{e.Message}");}}//事件订阅者:事件方法编写和订阅函数类Subscriber2{privatereadonlystringStr;////订阅的动作在里面所以要传给发布者publicSubscriber2(stringstr,Publisherpublisher){str=str;//订阅事件publisher.CustomEvent+=HanderCustomEvent;}privatevoidHanderCustomEvent(objectsender,CustomEventArgse){//在这里做你想做的EventConsole.WriteLine($"Publisher:{sender.GetType()},Subscriber:{Str},parameter:{e.Message}");}}第四,调用事件staticvoidMain(string[]args){Publisherpublisher=newPublisher();订户subscriber1=newSubscriber("subscriber1",pu水泡);Subscriber2subscriber2=newSubscriber2("subscriber2",publisher);//调用方法publisher.DoSomething();控制台.ReadKey();关于模式的文章到此结束。希望对大家的学习有所帮助,希望大家多多支持。以上是C#学习教程:C#基于自定义事件EventArgs实现发布订阅模式共享。如果对大家有用,需要进一步了解C#学习教程,希望大家多多关注。本文来自网络收藏,不代表立场,如涉及侵权,请点击右边联系管理员删除。如需转载请注明出处: