天天看点

C#委托基础2——多路委托

多路委托

class Program  

    {  

        public delegate void SayThingToS(string s);  

        void SayHello(string s)  

        {  

            Console.WriteLine("你好{0}", s);  

        }  

        void SayGoodBye(string s)  

            Console.WriteLine("再见{0}", s);  

        static void Main(string[] args)  

            // 方式一  

            SayThingToS say1, say2, say3, say4;  

            Program p = new Program();  

            say1 = p.SayHello;  

            say1("xy"); // 你好xy  

            say2 = p.SayGoodBye;  

            say2("xy"); // 再见xy  

            say3 = say1 + say2;  

            say3("xy"); // 你好xy,再见xy  

            say4 = say3 - say1;  

            say4("xy"); // 再见xy  

            // 方式二  

            SayThingToS s1 = new SayThingToS(p.SayHello);  

            s1 += new SayThingToS(p.SayGoodBye);  

            s1("xy"); // 你好xy,再见xy  

            SayThingToS s2 = new SayThingToS(p.SayHello);  

            s2 += new SayThingToS(p.SayGoodBye);             

            s2 -= new SayThingToS(p.SayHello);  

            s2("xy"); // 再见xy  

    } 

本文参考自金旭亮老师的《.NET 4.0面向对象编程漫谈》有关代理的内容

C#委托基础系列原于2011年2月份发表在我的新浪博客中,现在将其般至本博客。

本文转自IT徐胖子的专栏博客51CTO博客,原文链接http://blog.51cto.com/woshixy/1070981如需转载请自行联系原作者

woshixuye111