C#委托多播

Posted 漂泊雪狼的博客

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C#委托多播相关的知识,希望对你有一定的参考价值。

 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#委托多播的主要内容,如果未能解决你的问题,请参考以下文章

C#进阶多播委托和委托数组像是一回事~

关于C#中委托的多播应用问题

C#多播委托和事件有啥区别

(23)c#传智:单例模式,XML读写,委托,匿名函数,Lamda,多播委托

C#学习笔记9

c# 多播委托的 异常处理 如果有返回值 只返回最后一个返回值