cowbird 心有多大,世界有多大

燕八哥 MSN:cowbird2002@hotmail.com

know everything about something and something about everything

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

    看了几个相关的视频教程,对delegate一直很迷惑,于是动手看了些例子。有点收获,于是写成文章,提供给我一样的初学者一起学习。
     我更喜欢称呼delegate为代理。它是一个执行方法的通道,申明在主体里。至于执行什么方法写在主体外面。这样一个好处就是主体中就预留了一个对外的口子,做什么事情以后考虑。

 准备一
 1)主体内申明
   public delegate void 被附体的代理申明(int intTemp);

     2) 主体内申明使用代理的方法
   public void myFunction(被附体的代理申明 被附体的方法)
   {
      int i = 1;
      被附体的方法(i);
       MessageBox.Show(this,intBtn1.ToString());
   } 
 
 准备二
 1) 主体外写准备附体的方法,上面申明的参数和返回值一致
   private void 准备附体的方法1(int intTemp)
   {
      intBtn1 =  intTemp * 10;
   }
   
  
   你也可以这样申明
    private void 准备附体的方法2(int intTemp)
   {
      intBtn1 =  intTemp * 100;
   }
  
  准备三 使用
  1)使用方法1 this.myFunction(new 被附体的代理申明(准备附体的方法1));
  
    使用方法2 this.myFunction(new 被附体的代理申明(准备附体的方法2));

      这样myfunction可以做很多不同的事情了。不用改myfunction的代码,就可以执行各样“准备附体的方法”

更多可参考委托教程
http://msdn.microsoft.com/library/chs/default.asp?url=/library/CHS/csref/html/vcwlkdelegatestutorial.asp

posted on 2006-02-10 15:06  cowbird  阅读(2227)  评论(12编辑  收藏  举报