Jane.T

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

代理类似于C++中的函数指针。其主要作用是将一个类A的方法m传递给另一个类B使用,使得类B的对象可以调用这个方法m。

实现一个delegate是很简单的,通过以下3个步骤即可实现一个delegate:
1. 声明一个delegate,它应当与你想要传递的方法具有相同的参数和返回值类型。
     声明一个代理的例子:
    public delegate int MyDelegate(string message);


2. 创建delegate对象并将你想要传递的函数作为参数传入
     创建代理对象的方法:
    1). MyDelegate myDelegate = new MyDelegate(实例名.方法名);
    2). MyDelegate myDelegate = new MyDelegate(类名.方法名);
    注:如果需要代理的方法是一个static静态方法的话,采用第2种方式,否则采用第1种方式。

    注意: 程序中可能不会显示的做如上的代理实现,即不会显示的将方法绑定至代理。


3.在要实现异步调用的地方,通过上一步创建的代理对象来调用方法
    可以直接使用代理调用代理所指向的方法:
    myDelegate(向方法传递的参数);

posted on 2010-03-04 11:45  Jane.T  阅读(223)  评论(0编辑  收藏  举报