码迷,mamicode.com
首页 > 其他好文 > 详细

委托Delegate,多播委托和委托链

时间:2014-09-19 15:26:15      阅读:133      评论:0      收藏:0      [点我收藏+]

标签:div   sp   on   c   line   ad   new   r   bs   

定义一个委托
public delegate void CalculateDelegate(int 32 x,int 32 y);
定义一个委托类型的变量
public static CalculateDelegate mydelegate;
定义一个方法和委托绑定,注意定义的方法和委托的参数要统一
public static void Add(int 32 x,int 32 y)
{
    console.writeline(x+y);
}
将方法和委托绑定
public static void main()
{
    mydelegate = new CalculateDelegate (Add);
    mydelegate (100,200);
}
可以理解为:定义了一个方法,这个方法和定义的委托一定要有相同的参数,然后将方法作为一个参数传给CalculateDelegate 委托,mydelegate 现在存的应该是指向Add方法的一个引用,用mydelegate (100,200);可以回调Add方法。
 
可以将多个方法同时绑定到一个委托中,这样,当调用一个委托时,可以同时调用多个方法,这叫多播委托。
多个方法绑定到一个委托变量中就形成一个委托链。
public static void main()
{
    mydelegate = new CalculateDelegate (Add);
    mydelegate += new CalculateDelegate (Multiply);
    mydelegate += new CalculateDelegate (Substract);
    mydelegate (100,200);
 
    mydelegate -= new CalculateDelegate (Add);
    mydelegate (100,200);
}

委托Delegate,多播委托和委托链

标签:div   sp   on   c   line   ad   new   r   bs   

原文地址:http://www.cnblogs.com/jingsheng99/p/3981389.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!