好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

.NET自定义事件小结

.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/

    

本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

版权信息

查看更多关于.NET自定义事件小结的详细内容...

  阅读:41次