多路委托

classProgram { publicdelegatevoidSayThingToS(strings); voidSayHello(strings) { Console.WriteLine("你好{0}",s); } voidSayGoodBye(strings) { Console.WriteLine("再见{0}",s); } staticvoidMain(string[]args) { //方式一 SayThingToSsay1,say2,say3,say4; Programp=newProgram(); 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 //方式二 SayThingToSs1=newSayThingToS(p.SayHello); s1+=newSayThingToS(p.SayGoodBye); s1("xy");//你好xy,再见xy SayThingToSs2=newSayThingToS(p.SayHello); s2+=newSayThingToS(p.SayGoodBye); s2-=newSayThingToS(p.SayHello); s2("xy");//再见xy } }

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

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