RT,对委托不是太明白.

解决方案 »

  1.   

    说详细些,好么?
    一楼的,对不住你啊,您用感恩的心对待我,可惜我辜负了你...(详情请见另一贴http://topic.csdn.net/u/20080118/12/1138ebe3-7385-46be-bfd4-b8184d2f12e1.html)
    不过我明天一定要加分给您的,只要回答得完美.
    我将怀着一颗感恩的心赠送给您分的~
      

  2.   

    真加200分?哈哈?那敢情好,不过我是无能为力给你解答,只能推荐你去看看这篇文章,相信你会受益匪浅。
    http://www.cnblogs.com/JimmyZhang/archive/2007/09/23/903360.html
      

  3.   

    我对web中使用事件委托感兴趣,请提供这方面的主要应用,尽量详细些,200分可以,如果确实很好,分再高些也没什么大不了的.
      

  4.   

    以下是我对于委托的一些理解供参考:委托是C#中的一种引用类型,类似于C/C++中的函数指针。与函数指针不同的是,委托是面向对象、类型安全的,而且委托可以引用静态方法和实例方法,而函数指针只能引用静态函数。委托主要用于 .NET Framework 中的事件处理程序和回调函数。在实际中,委托通常较多用于事件的应用。比如, button的click事件,就是一种委托。委托可以避免程序的耦合性,例如,A, B, C都委托D去获取工资。这时候,A,B,C 不知道D实施的过程只是做了委托来获取值。
      

  5.   

    哦,根据8楼的说法,也就是说委托在WEB中被封装起来了,我们不必考虑其细节...是这样的么?
      

  6.   

    我看了,兄弟,那章文章真的很不错,我已经收藏了,以后慢慢消化.
    我现在的感觉是我感觉那些在web中应用不假,但是都被.net framework封装了,比如事件~
      

  7.   

    我最初学的时候也有同样的困惑,不用急,耐心的去看看委托和事件,再分别写几个例子,你可能就明白了
    你的问题就迎刃而解.
    你的问题我只能这么说,.net可能在刚开始用的时候可能不用写太多委托,但如果想实现更高级或更复杂的功能的时候,委托
    就派上大用处喽,深感!
      

  8.   

    一个令Insus.NET神往的就是委托。
      

  9.   

    在什么情况之下,使用委托?
    下面Insus.NET以一个很通俗的说法来解释:
    即是当我们需要把方法当作参数来传递时,就得使用委托;
    实际情况之下,我们想把方法当作参数来传递时,由于方法没有数据类型,无法传递,所以得使用委托来实现,把方法宣告为一个变量.
      

  10.   

    你还可以把多个方法都封装到一个委托,然后按顺序调用他们.委托其实就是一个类型的定义:
    internal delegate void Feedback(Int32 value);编译器会象下面这样定义internal class Feedback:MulticastDelegate
    {
        public Feedback(object obj, Inptr method);    public virtual void Invoke(Int32 value);    ....
    }调用委托其实就是调用这个类的Invoke方法.
      

  11.   

    但是我还是觉得在web中不大应用
    好像都封装好的,不要自已编写了.
    有高手回答么?
      

  12.   

    其实委托是很有用的,它可以提供很大的灵活性。假设我们有一个用于排序的类,在这个类中我们提供了各种排序方法,比如InsertSort(...),QuickSort(...),BubbleSort(...)等等。但是,排序方法非常多,我们没有必要也没有可能把每种方法都在这一个类中实现,在这种情况下就可以用委托来为外界提供一个接口,让使用这个类的开发者不但可以使用现有的排序方法,也能自行设计排序方法,按这样的思路,我们可以写出如下的方法:
    public delegate ReturnType CustomSortAlgorithm(AnyDataType firstMember,AnyDataType secondMember);
    ReturnType CustomSort(AnyDataType dataToBeSorted,CustomSortAlgorithm yourAlgorithm)
    {
       ...
    }public ReturnType YourAlgorithm(AnyDataType firstMember,AnyDataType secondMember)
    {
       //TO-DO:自定义排序方法的实现
    }
    按照这样的方法,另一个人在使用这个排序类的时候可以自行实现算法进行排序,提高了灵活性。
    代理在开发中应用得少我想可能是因为有其它的方法可以达到同样的效果吧,如果不用代理,其实也可以使用“策略模式”来达到可括展的目的:一个算法就像是一种策略,每个算法对象都实现一个统一的接口,通过调用不同算法对象的同一个接口方法就可以实现不同的算法...PS:在JAVASCRIPT中,数组的sort方法其实也是代理的一个应用。