因为对委托函数理解不深刻,又想弄清楚里面的原理,请大家讨论下委托函数的细节问题,
谢谢

解决方案 »

  1.   

    1、首先,委托不是函数,是类2、委托使用起来从基本功能上来时,可以约等于C语言中的函数指针,可以近似理解为类型安全的函数指针。在C#与非托管代码交互时,非托管代码中的函数指针即对应C#中的委托3、委托可以实现多播,可以理解为一个委托的执行可以依次调用多个函数4、事件即多播的一种特殊形式
      

  2.   

    用C++的话讲,就是callback函数。 this.pictureBox1.MouseDown += new System.Windows.Forms.MouseEventHandler(this.pictureBox1_MouseDown);
    就是把callback函数加到一个callback函数数组里面去。当事件发生时,系统会调用这个callback数组里面的每个函数。
      

  3.   

    同意楼上,相当于c++里面的callback函数,c里面的函数指针
      

  4.   

    技术讲座:.NET委托、事件及应用兼谈软件项目开发
      

  5.   

    http://www.bitscn.com/dotnet/c/200709/109544.html
    这个写的还行.
      

  6.   

    框架设计第二版里面讲得很详细创建一个委托后会创建一个类
    它的构造函数是一个方法的对象类型和一个函数指针(该方法的地址)三个方法
    Invoke
    BeginInvoke
    EndInvoke
      

  7.   

    什么是.Net的异步机制(委托Delegate) - step 1:
    http://www.cnblogs.com/AndyHuang/archive/2009/02/07/1361267.html我是看这上面学的我看书上将委托就像一个标签。。新手说的不对见谅
      

  8.   

    谢谢楼上朋友的回复...
    感觉委托好象是把一些函数绑定在一起同时执行;Invoke 
    BeginInvoke 
    EndInvoke
    今天看到别人代码里面有讲到,没怎么看太明白...托管代码和非托管代码也不是太清楚...
      

  9.   

    请看:
        http://msdn.microsoft.com/zh-cn/library/900fyy8e(VS.80).aspx
      

  10.   

    楼主问的两个问题都是.NET基础问题...建议你最好去看MSDN...
      

  11.   

    像这种基础东西还是看看MSDN好
    http://msdn.microsoft.com/zh-cn/library/ms173171(VS.80).aspx至于你说的:感觉委托好象是把一些函数绑定在一起同时执行; 委托是一种引用方法的类型。一旦为委托分配了方法,委托将与该方法具有完全相同的行为。委托方法的使用可以像其他任何方法一样,具有参数和返回值.这些MSDN上面都有解释的
      

  12.   

    呵,这种东西,还真说不出什么东西来.我经常用到委托来做的事是自定义事件,在类间传值,还有就是用它更新界面.
    比如1:public delegate void mydelegate(string s);--参数自己定,返回值也是根据需要来定
          public event mydelegate dosomething;
          
         在需要触发事件的地方:if(dosomething!=null)
                              dosomething(s);
         在另一个类中定义事件:class1.dosomething+= new mydelegate(function1);
               定义处理方法: private void function1(string s)
                            {...}比如2:如果在不是创建界面的线程更新界面的话,会出错,这时也用到委托:
    this.invoke(new methodInvoke(delegate()
       {
           ... --更新界面的代码
        }