博客笨猫

  博客园 :: 首页 :: 新随笔 :: 联系 :: 订阅 :: 管理 ::

初学Delegate

//******************************************************************/
/*       Delegate Sample
/* 
//******************************************************************/

using System;

namespace EventTest
{
 //事件类
 public class EventClass
 {
  public void display(object sender,System.EventArgs e)
  {
   Console.WriteLine("This is the Event Class");
   Console.ReadLine();
  }
 }
 //调用类
 class InvokeClass
 {
  //声明代理对象,注意参数
   public delegate void delegateobj(object sender,System.EventArgs e);
  //声明事件对象
  private event delegateobj obj;
  //声明要调用的事件类对象
  private EventClass ec;
  
  public InvokeClass()
  {
   ec=new EventClass();
   //添加事件对象到事件队列中,参数为要调用的事件
   this.obj+=new delegateobj(ec.display);
  }
  //调用delegate对象触发事件
  protected void OnObj(System.EventArgs e)
  {
   if(this.obj!=null)
   {
     obj(this,e);
   }
  }
  public void RaiseEvent()
  {
   EventArgs e=new EventArgs();
   OnObj(e);
  }
  static void Main(string[] args)
  {
   InvokeClass ic=new InvokeClass();
   Console.WriteLine("Please input a string");
   string input=Console.ReadLine();
   if(input.Equals(""))
   {
    Console.WriteLine("Sorry,you don't input anything");
   }
   else
   {
    //触发事件
    ic.RaiseEvent();
   }
  }
 }
}

posted on 2004-07-11 15:21  笨猫  阅读(156)  评论(0)    收藏  举报