.NET自定义事件小结
下面就给出实现的具体步骤---已经在代码注释中标明,以供各位博友抽象出自定义事件的流程。
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace 自定义事件 { // http://www.cnblogs.com/DebugLZQ // 自定义事件步骤的示例代码 // 0.定义事件传递的参数 class AlarmEventArgs : EventArgs { public int numberOfThief; public AlarmEventArgs( int n) { numberOfThief = n; } } // 事件的发出者 class Dog { // 1.声明事件的委托 public delegate void AlarmEventHandler(Object sender, AlarmEventArgs e); // 2.声明事件 public event AlarmEventHandler Alarm; // 3.引发事件的函数 public void OnAlarm(AlarmEventArgs e) { if ( this .Alarm != null ) { Console.WriteLine( " The dog is Wangwang... " ); this .Alarm( this , e); } } } // 事件的订阅者 class Host { // 4.订阅事件 public Host(Dog dog) { dog.Alarm += new Dog.AlarmEventHandler(HostHandleEvent); } // 5.事件处理程序 public void HostHandleEvent(Object sender, AlarmEventArgs e) { Console.WriteLine( " Host caught the thief! The sum is " + e.numberOfThief); } } class Program { static void Main( string [] args) { Console.WriteLine( " Program is running... " ); Dog dog = new Dog(); Host host = new Host(dog); Console.WriteLine( " Someone is coming... " ); // 6.在合适的时候引发事件 AlarmEventArgs alarmEventArgs = new AlarmEventArgs( 3 ); dog.OnAlarm(alarmEventArgs); Console.ReadKey(); } } }
程序运行结果如下:
例子很简单,我是按照顺序写的,在代码中也有详细的步骤注释,就不多讲了。一般经验来讲,自定义的东西往往是很有用的,而往往也不是人人能够掌握,DebugLZQ总结了一下,也没有什么高端的技术,遇到了自定义事件的这个事情,写下来吧,心里也就不虚了~具体流程可能一千个人一千个哈姆雷特,看个人习惯~
接下来英语口语要注意锻炼,技术要继续学习(重点是加强LINQ,WCF,WPF以及敏捷开发方面的知识),努力提高自己的专业素质,在此期间完成毕业论文。
时间又是很晚了~手指在键盘上流浪至天明吧~多么美丽的夜晚---So Beautiful !
分类: 多线程 , 开发工具、职场杂谈、技术杂记、行业新闻等
作者: Leo_wl
出处: http://www.cnblogs.com/Leo_wl/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
版权信息声明:本文来自网络,不代表【好得很程序员自学网】立场,转载请注明出处:http://haodehen.cn/did47683