码迷,mamicode.com
首页 > Windows程序 > 详细

C#委托多播

时间:2016-06-04 13:38:18      阅读:153      评论:0      收藏:0      [点我收藏+]

标签:

 class Program
    {

        static void Main(string[] args)
        {
           
            Action<double> ops = MathOperations.Mutiply;

            ops += MathOperations.Squre;

            ops.Invoke(3);

        }

      
    }
 public class MathOperations
    {
        public static void Mutiply(double value)
        {
            Console.WriteLine("result:{0}", value * 2);
        }

        public static void Squre(double value)
        {
            Console.WriteLine("result:{0}", Math.Pow(value, 2));
        }
    }

 改进的调用方式,防止多播中的末一个发生异常

 

 class Program
    {

        static void Main(string[] args)
        {
           
            Action<double> ops = MathOperations.Mutiply;

            ops += MathOperations.Squre;

            //ops.Invoke(3);

            Delegate[] delegates = ops.GetInvocationList();

            foreach (Action<double> d in delegates)
            {
                try
                {
                    d(3);
                }
                catch (Exception ex)
                {
                    Console.WriteLine(ex.Message);
                }

            }
        }

      
    }

 

C#委托多播

标签:

原文地址:http://www.cnblogs.com/weiweictgu/p/5558626.html

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