就一行代码:delegate (IAsyncResult ar) 
{
 HandleConnection (VMManager.EndLaunch (ar));
}简单说明下:
HandleConnection 是一个函数,
VMManager是一个类,
EndLaunch 是一个静态方法。我的问题是:
delegate 的这种用法是什么意思?或者说这么写有什么作用?

解决方案 »

  1.   

    委托顾名思义就是:委托别人做一件事,目的就是定义一个委托方法,需要的时候直接调用这个委托就可以了,这个委托具体做什么事,就是里面的函数体了,C#是基于事件驱动的,所以就这样用喽,比如(sender e,args s);e 是事件发出者,s是事件参数,让e带着这个参数去执行任务就OK额
      

  2.   

    匿名方法
    详见msdn简单说一下,
    private delegate void TestHandler(IAsyncResult ar);
    private void Test(IAsyncResult ar)
    {
        HandleConnection (VMManager.EndLaunch (ar));
    }//调用地方:
    IAsyncResult ar = xxx.BeginInvoke(....);
    TestHandler th = new TestHandler(Test);
    th(ar);
    简化后,你不用声明th,不用写Test方法。
    还是详见msdn : 匿名方法  或是搜索: 匿名方法 c#
      

  3.   

    C#里面的委托不都是这种的吗?public delegate String myMethodDelegate( int myInt );我想问的是我问题里面的这种用法不大一样啊?