就是c++中的函数指针,当然。NET 中的委托功能大于前者。一般就是用于实现回掉(callback)
比如异步编程

解决方案 »

  1.   

    委托实质上是一个用于专门定义函数指针的类.
        例如:public delegate int myfunc(int x);
    功能上讲类似于C/C++中的:
           typedef int (* myfunc)(int x);而从另一方面讲它又像是简化了的接口类型:
           public interface ISample
           {
               int myfunc(int x);   
            }不过委托又有其特殊之处,一个委托可以同时指向几个函数,因此实质上它是一个函数指针数组.//.......................................................委托经典的用法如下:
    using system;public delegate void myEventHandler(Object Sender,myEventArgs e);public class myTest
    {
         private int x;
         public event myEventHandler myEventBefore;
         public event myEventHandler myEventAfter;
    //.........................
         public int X
         {
            get{ get x; }
            set
            {
                 myEventBefore(this,null);
                 x=value;
                 myEventAfter(this,null);
             }
          }
    }public class myApp
    {
       public static void myCallBackfucBefore(Object Sender,MyEventArgs e)
       {
            //do something before set value;
        }   public static void myCallBackfucAfter(Object Sender,MyEventArgs e)
       {
            //do something after set value;
        }   public static void main()
       {
           myTest myt=new myTest();
           myt.myEventBefore+=new myEventHandler(myCallBackfucBefore);
                               //把函数包装成委托。
           myt.myEventAfter+=new myEventHandler(myCallBackfucAfter);
                               //把函数包装成委托。
           myt.X=0;
           //测试一下!:)  
    }这里的事件参数类 MyEventArgs 我没有定义,为的是简化程序.
    我也是现学现卖了 :)