1、delegate是不是就是指“委托”?它和“委托”有何区别? 1、该类型可用于将方法用特定的签名封装 请问,这句话应该怎么理解,说的太抽象,我完全无法理解? 
2、委托实例封装静态方法或实例方法

解决方案 »

  1.   

    1、delegate是不是就是指“委托”?它和“委托”有何区别? 
    就是一样的,所以没有什么区别,也被翻译成代理
    1、该类型可用于将方法用特定的签名封装 请问,这句话应该怎么理解,说的太抽象,我完全无法理解? 
    是说这种类型(指代理)可以用来指向一个方法(即函数),调用这个
    代理就是调用这个代理所指向的函数。
    2、委托实例封装静态方法或实例方法
    委托(即代理)可以用来指向属于类型定义(用class关键字定义)的静态方法(用static修饰),也可以用来指向属于类型实例(即你用new关键字创建的对象实体)的方法。
      

  2.   

    感谢!我继续请教,请看下面这个简单的delegate程序代码:
    1、其中哪个地方的代码是表示用委托(即代理)指向的(即函数)?
    2、其中哪个地方的代码是表示调用这个委托(即代理)就是调用这个代理所指向的函数。
    只要找到相关代码的位置我就差不多理解了。using System;namespace UCOM.HR
    {
       public delegate string FunctionPointer(string Name);    public class HumanResource
          {
    public static string aFunction(string Name){return " A Say Hello To " +Name;}
    public static string bFunction(string Name){return " B Say Hello To " +Name;}
    public static void aMethod(FunctionPointer aFunctionPointer){
       Console.WriteLine(aFunctionPointer("Miles"));
    }  public static int Main() {
       FunctionPointer a = new FunctionPointer(aFunction);
       FunctionPointer b = new FunctionPointer(bFunction);
       aMethod(a);  
       aMethod(b);  
       return 0;
            }
       }
    }
      

  3.   

    public delegate string FunctionPointer(string Name);
    这句代码是声明了委托public static void aMethod(FunctionPointer aFunctionPointer){}
       FunctionPointer a = new FunctionPointer(aFunction);
       FunctionPointer b = new FunctionPointer(bFunction);
    这都是调用了委托所指向的函数
      

  4.   

    谢谢!再次向你赐教一下:
    1、FunctionPointer a = new FunctionPointer(aFunction);
      在这里,实例化了刚才建立的委托FunctionPointer,它括号里是一个aFunction函数参数,这表明使用委托可以把函数当参数来传递,但是这样有何好处?2、public static void aMethod(FunctionPointer aFunctionPointer){}
      而在这里,aFunctionPointer是aMethod方法里的一个委托参数,但是它好象不是函数啊??在上面的程序代码中,我好象没有看见对aFunctionPointer函数的申明代码段,我只看到了对aFunction、bFunction函数的申明代码段?
      

  5.   

    OK  可以看看一个叫“BedTime”的delegate例子