首页 > 其他 > 详细

委托对象封装多个方法6.10

时间:2015-05-22 02:15:34      阅读:340      评论:0      收藏:0      [点我收藏+]

委托对象封装多个方法的使用:

?一、委托的使用:

?http://cb123456.iteye.com/blog/2213009

?

?二、委托对象封装多个方法:

?委托对象可以封装多个方法(称为多路广播委托),这些方法的集合称为对象的调用列表。可以使用"+","-","+=","-="等运算符向调用列表中增加或者移除方法

?

?三、示例:

?

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Proj6_10
{   //委托对象可以封装多个方法(称为多路广播委托)

    delegate void mydelegate(double x,double y); //申明委托类型
    class MyDeClass 
    {
    
     public void add(double x,double y){

         Console.WriteLine("{0}+{1}={2}",x,y,x+y);
     
     }

     public void sub(double x, double y)
     {

         Console.WriteLine("{0}-{1}={2}", x, y, x - y);

     }

     public void mul(double x, double y)
     {

         Console.WriteLine("{0}*{1}={2}", x, y, x * y);

     }

     public void div(double x, double y)
     {

         Console.WriteLine("{0}/{1}={2}", x, y, x / y);

     }
    
    }
    
    
    class Program
    {
        static void Main(string[] args)
        {

            MyDeClass obj = new MyDeClass();
            mydelegate p, a;

            a = obj.add;//直接obj.add赋值给委托对象
            p = a;//将add方法添加到调用列表中

            a = obj.sub;//直接obj.add赋值给委托对象
            p+=a;//将sub方法添加到调用列表中

            a = obj.mul;//直接obj.add赋值给委托对象
            p += a;//将mul方法添加到调用列表中

            a = obj.div;//直接obj.add赋值给委托对象
            p += a;//将div方法添加到调用列表中

            p(5,8);


            //在主函数中,通过调用p(5,8)执行所有的委托

        }
    }
}

?

?

?

?四、运行效果:

?bubuko.com,布布扣
?

?五、解释:

?将4个关联的委托对象添加到调用列表p中,通过调用p(5,8)执行所有其中的委托,

?对于p(5,8)语句的执行过程是:p是一个委托对象,它指向obj对象的4个事件处理方法,将参数5和8传递给这4个事件处理方法,分别执行这些方法,想当于执行obj.add(5,8),obj.sub(5,8),obj.mul(5,8),obj.div(5,8)

?

委托对象封装多个方法6.10

原文:http://cb123456.iteye.com/blog/2213360

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!