哪个哥哥们有相关的资料啊,救急啊!这个方面的东东我弄了好几天了,还是有很多的地方不太明白啊,救命啊!
有的能不能回啊,谢谢了啊 
                                                替所有的菜鸟们向你致敬!

解决方案 »

  1.   


    委托类型 (delegate type) 表示对具有特定参数列表和返回类型的方法的引用。通过委托,我们能够将方法作为实体赋值给变量和作为参数传递。委托类似于在其他某些语言中的函数指针的概念,但是与函数指针不同,委托是面向对象的,并且是类型安全的。
    下面的示例声明并使用一个名为 Function 的委托类型。
    using System;
    delegate double Function(double x);
    class Multiplier
    {
    double factor;
    public Multiplier(double factor) {
    this.factor = factor;
    }
    public double Multiply(double x) {
    return x * factor;
    }
    }
    class Test
    {
    static double Square(double x) {
    return x * x;
    }
    static double[] Apply(double[] a, Function f) {
    double[] result = new double[a.Length];
    for (int i = 0; i < a.Length; i++) result[i] = f(a[i]);
    return result;
    }
    static void Main() {
    double[] a = {0.0, 0.5, 1.0};
    double[] squares = Apply(a, new Function(Square));
    double[] sines = Apply(a, new Function(Math.Sin));
    Multiplier m = new Multiplier(2.0);
    double[] doubles =  Apply(a, new Function(m.Multiply));
    }
    }
    Function 委托类型的实例可以引用任何接受 double 参数并返回 double 值的方法。Apply 方法将给定的 Function 作用于 double[] 的元素,并返回含有结果的 double[]。在 Main 方法中,Apply 用于将三个不同的函数应用于一个 double[]。
    委托可以既可以引用静态方法(例如前一示例中的 Square 或 Math.Sin),也可以引用实例方法(例如前一示例中的 m.Multiply)。引用了实例方法的委托也就引用了一个特定的对象,当通过该委托调用这个实例方法时,该对象在调用中成为 this。
    委托的一个有趣且有用的属性在于,它不知道也不关心它所引用的方法的类;它所关心的仅是所引用的方法与委托具有相同的参数和返回类型。
      

  2.   

    delegate有很多知識,你具體哪裡不明白可以提出來,要是把理論的東西給你說一遍,還不如你自己去看書呢?
      

  3.   

    我写了一个简单的委托,其实委托就是委托一个方法做相应的工作using System;namespace consign
    {
    /// <summary>
    /// Class1 的摘要说明。
    /// </summary> //定义委托
    public delegate double text(int x,int y);
    class Class1
    {
    /// <summary>
    /// 应用程序的主入口点。
    /// </summary>
    [STAThread]
    static void Main(string[] args)
    {
    text t1 = new text(text1);
    Console.Write("输入两个值");
    int v1 = Int32.Parse(Console.ReadLine());
    int v2 = Int32.Parse(Console.ReadLine()); double res = t1(v1,v2);
    Console.WriteLine("结果 :"+res);
    Console.ReadLine(); }

    static double text1(int e,int r)
    {
    return e*r;
    } }
    }