如题,比如 Delegate void testDelegate();
 
     testDelegate = new testDelegate(Num.Add);//Num.Add是一个Num类实例的Add方法那么这里的Num.Add到底是什么类型的参数呢?

解决方案 »

  1.   

    定义委托是为了取代C++里面的指针,委托是函数或者方法的地址
    Delegate void testDelegate();
    表示 一个返回类型为VOID的函数的委托,Num.Add是一个方法.
      

  2.   

    delegate 类似C++中函数指针的作用,但并非只是函数或者方法的地址,而是一种对原型相同的类的静态方法或类实例的非静态方法进行绑定的机制。这种差别主要体现在delegate可以支持一对多的方法绑定,如:
    Delegate void testDelegate();// 1
    testDelegate += new testDelegate(x.x);// 绑定X类实例x的成员方法x
    testDelegate += new testDelegate(Y.Y);// 绑定Y类静态方法Y
    只要x.x和Y.Y与1处声明一致
      

  3.   

    在C++中是指针,而在C#中方法是是值类型的,这样比较C++更安全.
      

  4.   

    比如 Delegate void testDelegate();
     
         testDelegate = new testDelegate(Num.Add);//Num.Add是一个Num类实例的Add方法那么这里的Num.Add到底是什么类型的参数呢?什么类型的参数??
    你在Delegate void testDelegate();的时候没有定义参数
    那么Num.Add()也没有参数;在声明委托的时候定义什么参数,那么调用的方法也必须是什么参数