C# 委托及事件
usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Text;namespace委托及事件{classProgram{staticvoidMain(string[]args){Emplyeeem=newEmplyee();Reporterre=newReporter();//指明事件触发后,由谁来处理em.PlayGame+=newDelegateClassHandle(re.Notify);em.Game();Console.ReadKey();}}publicdelegatevoidDelegateClassHandle();//定义托管publicclassEmplyee//定义员工类{publiceventDelegateClassHandlePlayGame;//定义托管的绑定事件PlayGamepublicvoidGame()//定义一个Game方法{if(PlayGame!=null)//判断事件是否为空{Console.WriteLine("哈哈,开始玩游戏");PlayGame();}}}publicclassReporter//定义一个报告类{publicvoidNotify(){Console.WriteLine("报告老板,有人玩游戏");}}
带参数的委托:
usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Text;namespace委托及事件{classProgram{staticvoidMain(string[]args){Employeeel=newEmployee("二逼青年",888);Reporterre=newReporter();//指明事件触发后,由谁来处理el.PlayGame+=newDelegateClassHandle(re.Notify);el.Game();Console.ReadKey();}}///<summary>//////</summary>///<paramname="sen">触发事件的源</param>///<paramname="e">同时携带的参数</param>publicdelegatevoidDelegateClassHandle(objectsen,cce);//定义托管publicclassEmployee//定义员工类{string_name;int_number;publicstringName{get{return_name;}set{_name=value;}}publicintNumber{get{return_number;}set{_number=value;}}publiceventDelegateClassHandlePlayGame;//定义托管的绑定事件PlayGamepublicEmployee(stringnm,intnu){_name=nm;_number=nu;}publicvoidGame()//定义一个Game方法{if(PlayGame!=null)//判断事件是否为空{Console.WriteLine("哈哈,开始玩游戏");//实例化一个参数类cce=newcc();e.Name=_name;e.Number=_number;PlayGame(this,e);}}}publicclassReporter//定义一个报告类{publicvoidNotify(objectsen,cce){Console.WriteLine("报告老板,{0}在{1}玩游戏",e.Name,e.Number);}}publicclasscc:EventArgs{publicstringName="";publicintNumber=0;}}
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。