匿名委托进阶

   上面文章介绍了委托、匿名的定义,下面的例子则是由繁入简,废话很少说,直接上代码: class Program
    {
        private   delegate int sum(int x, int y);
        private delegate int MyMulticastDelegate(int x, int y);
        static void Main(string[] args)
        {
          
            Console.WriteLine("委托方式一加法:");
            sum addsum = new sum(add);
            int y = addsum(2, 3);
            Console.WriteLine("委托方式一加法:2+3" + y);

           
            
            Console.WriteLine("多波委托:有的时候,咱们想要调用一个委托,但同时能够执行多个方法(自定义事件中最为常见),好比,一个工做文档生成以后,系统要将生成文档日志,并且还要被保存到数据库中,对于以上二个操做,若是只想调用一个委托,就能够顺序完成,那么使用多播委托,就能够实现。");
            MyMulticastDelegate sumdele = new MyMulticastDelegate(add);

            MyMulticastDelegate subdele = new MyMulticastDelegate(sub);

            MyMulticastDelegate multicastDelegate = sumdele+subdele;

            multicastDelegate(2,2);


            Console.WriteLine("委托中的匿名方法(未简化):");
            sum Nofuntion = new sum(delegate( int x,int i) { return x * i; });
            int k = Nofuntion(2,3);
            Console.WriteLine(k);

            Console.WriteLine("委托中的匿名方法(简化):");
            sum  _sum =(int x, int m)=>{ return x * m; };   
            int z = Nofuntion(2, 3);
            Console.WriteLine(z);

            Console.ReadKey();
        }
      
        private static int add(int x, int y)
        {
            Console.WriteLine(x+y);
            return x + y;
        }
        private static int sub(int x, int y)
        {
            Console.WriteLine(x - y);
            return x - y;
        }
        private static void mulitey(int x, int y)
        {
            Console.WriteLine(x * y);
        }
    }
相关文章
相关标签/搜索