Delegate 委托复习(-) 委托的基本概念

时间:2023-03-09 01:29:12
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(向方法传递的参数);

 

代理的定义必须放在任何类的外面,如delegate int MyDelegate();而在类的方法中调用MyDelegate d = new MyDelegate(MyClass.MyMethod);来实例化自定义代理的实例。
代理三步曲:
a.生成自定义代理类:delegate int MyDelegate();
b.然后实例化代理类:MyDelegate d = new MyDelegate(MyClass.MyMethod);
c.最后通过实例对象调用方法:int ret = d();

 

写的非常好的文章

1:http://www.cnblogs.com/Gyoung/archive/2013/04/04/2997050.html    Func与Action

2:http://www.cnblogs.com/jesse2013/p/3428331.html 

3:表达式  http://www.cnblogs.com/jesse2013/p/3440852.html

3:英语学习之路 http://www.cnblogs.com/jesse2013/p/how-to-learn-english.html

4:log4net http://www.cnblogs.com/kissazi2/p/3393595.html

5:定义 jquery插件  http://www.cnblogs.com/xcj26/p/3345556.html