登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

樱之花

叶散的时候,你明白欢聚;花谢的时候,你明白青春.

 
 
 

日志

 
 
关于我

分类中“我的实验室”是我在日常工作中的一些知识总结,有些写的比较匆忙,可能大家在阅读时会产生困扰,后期有时间我会重新整理编辑,谢谢大家的到访,您们的支持是我前进的动力!

多点委托  

2008-02-22 10:40:41|  分类: .NET/C# |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

多点委托

前面使用的委托只代表一个方法,下面来看看多点委托,就是一个委托代表多个方法,调用多点委托时,所代表的所有方法将按顺序依次调用。

MyDelegate d1 = new MyDelegate(MyClass.Square);
MyDelegate d2 = new MyDelegate(MyClass.Cube);
MyDelegate d3 = new MyDelegate(MyClass.Double);
MyDelegate d = d1 + d2 +d3;

和下面Main方法里的那段等效
例:

using System;

namespace duodianweituo
{
    class Class1
    {
        [STAThread]
        static void Main(string[] args)
        {
            MyDelegate d = new MyDelegate(MyClass.Square);
            d += new MyDelegate(MyClass.Cube);
            d += new MyDelegate(MyClass.Double);
            ExecuteMethod(d,2);
        }

        static void ExecuteMethod(MyDelegate d, float x)
        {
            d(x);
        }
    }

    delegate void MyDelegate(float x);   

    class MyClass
    {
        public static void Square(float x)
        {
            float result = x * x;
            Console.WriteLine("{0}的平方等于:{1}",x,result);
        }

        public static void Cube(float x)
        {
            float result = x * x * x;
            Console.WriteLine("{0}的立方等于:{1}",x , result);
        }

        public static void Double(float x)
        {
            float result = 2 * x;
            Console.WriteLine("{0}的倍数等于:{1}",x , result);
        }
    }
}

  评论这张
 
阅读(789)| 评论(0)

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018