看了几个相关的视频教程,对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

相关文章: