谢谢了,因为目前比较迷芒,需要指路人,我连什么时候用都不知道,就更不用谈怎么用了是吧,快来指点一下

解决方案 »

  1.   

    http://www.tracefact.net/CSharp-Programming/Delegates-and-Events-in-CSharp.aspx看看这篇文章,我认为这个是我看到过讲委托讲得最浅显易懂的一篇
      

  2.   

    14分?都没动力了,算了,发下慈悲吧给你举个例子系统给我们提供了一个高效的排序算法,Arrary.Sort
    我们可以给字符串数组排序,但也许你需要一个自定义排序,难道自己写算法?
    显然不是,我们需要借用系统的算法,实现自定义排序,怎么办呢?——对,就是委托
    Array.Sort(T[],Comparison<T>)也许我们需要这样的排序:按字符串的长短排序,而不是按字母顺序
    我来实现一下
    我使用最古老的语法,而不是匿名方法和Lambda表达式,以免你看不懂
    string[]strs;
    Comparison<T>委托的原型为:
    int (T,T)
    显然,自定义的Rule方法符合该委托,可以被调用
    int Rule(string first,string second)//自定义排序,规则为字符串的长度排序
    {
    int length1=first.Length;
    int length2=second.Length;
    return length1.CompareTo(length2);
    }Arrary(strs,Rule);//
      

  3.   

    写程序时, 
    需要一个整数, 定义一个 int 变量
    需要一个字符串, 定义一个 string 变量需要一个功能呢? 比如上头有个排序的.在一个函数中除了需要常规变量, 通常也会需要一个 _功能_.于是, 代理就来了, 它也是变量, 不过类型比较特殊,
    类型描述了 一个函数调用的 原型 (signature).这样, 就可以象使用整型, 字符串一样的来使用函数作为变量了.