c#事件怎么用
本文小编为大家详细介绍“c#事件怎么用”,内容详细,步骤清晰,细节处理妥当,希望这篇“c#事件怎么用”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。
事件基于委托,可以为任何一种委托类型提供一种发布\订阅机制。
使用event关键字将一个委托类型定义为事件。
下面通过一个例子介绍事件:
//事件发布类 public class PublishEvent { public delegate string Display(string str); public event Display DisplayEvent; //客户端代码通过调用这个方法触发事件 public void Shows(string str) { if (DisplayEvent != null) { DisplayEvent(str); } } } //事件侦听类,这个类订阅事件 public class Listen1 { public string MakeAlert(string str) { Console.WriteLine(str + "Listen1"); return str + "Listen1"; } } public class Listen2 { public string ShowMsg(string str) { Console.WriteLine(str + "Listen2"); return str + "Listen2"; } }
客户端代码:
class Program { static void Main() { PublishEvent pe = new PublishEvent(); Listen1 l1 = new Listen1(); Listen2 l2 = new Listen2(); //变量l1和l2订阅了事件 pe.DisplayEvent += l1.MakeAlert; pe.DisplayEvent += l2.ShowMsg; //触发事件 pe.Shows("事件"); Console.ReadKey(); } }
事件就是一个特殊的委托,它是一个用于事件驱动模型的专用委托.你可以在客户代码中直接调用委托来激发委托指向的函数,而事件不可以,事件的触发只能由服务代码自己触发。也就是说在你的代码里委托你不但可以安排谁是它的调用函数,还可以直接调用它,而事件不能直接调用,只能通过某些操作触发。除此之此,事件拥有委托的所有功能,包括多播特性。即事件可以有多个事件处理函数,委托同样也可以是个多播委托.
事件是封装过的委托实例;委托是类型,事件是实例!
EventHandler<TEventArgs>.NET自带的委托,也用于定义事件。
读到这里,这篇“c#事件怎么用”文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注编程网行业资讯频道。
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341