欢迎来到天天文库
浏览记录
ID:38035791
大小:100.00 KB
页数:3页
时间:2019-05-24
《云大软件学院C#实验4委托》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、指标等级ABCD功能完整程序质量按时检查提问回答检查时间总评成绩实验报告序号:实验老师:课程名称:C#与.NET实验实验名称:实验4:委托学号:姓名:课程名称 C#与.NET实验实验项目实验4:委托实验目的 熟悉并掌握,C#的委托的特性。实验内容(算法、程序、步骤和方法)(1)类型Test的程序代码如下:usingSystem;namespaceDelegateTest{publicclassTest{staticvoidMain(string[]args){Announcean=newAnnounce();//实例化一个Announce对象//创建一份Action委托类型实体,代表
2、的对象是static成员函数Actionact1=newAction(Announce.announceDate);//创建一份Action委托类型实体,代表的对象是nonstatic成员函数Actionact2=newAction(an.announceTime);testHarness.Tester+=act1;//用"+="添加委托对象代表的成员函数Console.WriteLine("开始时只显示当前日期,如下:");testHarness.run();//运行该委托对象testHarness.Tester+=act2;Console.WriteLine("加入当前时间后
3、,显示如下:");testHarness.run();//调用GetInvocationList()方法来返回委托对象代表的成员函数Console.WriteLine("此时调用GetInvocationList()方法,显示如下:");if(testHarness.Tester!=null){Delegate[]delg=testHarness.Tester.GetInvocationList();foreach(Delegateddindelg)dd.DynamicInvoke();}elseConsole.WriteLine("该委托对象未调用任何方法。");3实验内容
4、(算法、程序、步骤和方法)testHarness.Tester-=act1;//用"-="移除委托对象代表的成员函数Console.WriteLine("去除当前日期后,显示如下:");testHarness.run();testHarness.Tester-=act2;Console.WriteLine("接着去除当前时间后,显示如下:");testHarness.run();Console.WriteLine("此时调用GetInvocationList()方法,显示如下:");if(testHarness.Tester!=null){Delegate[]delg=t
5、estHarness.Tester.GetInvocationList();foreach(Delegateddindelg)dd.DynamicInvoke();Console.WriteLine();}elseConsole.WriteLine("该委托对象未调用任何方法。");}}}(1)类型testHarness的程序代码如下:usingSystem;namespaceDelegateTest{publicdelegatevoidAction();//声明一个委托类型publicclasstestHarness{staticprivateActiontheAction;/
6、/声明一个委托对象staticpublicActionTester//属性,传回和设置Action对象{get{returntheAction;}set{theAction=value;}}staticpublicvoidrun()//调用委托对象所表示的成员函数,并运行{if(theAction!=null)theAction();elseConsole.WriteLine("该委托对象未调用任何方法。");}}}(2)类型Announce的程序代码如下:usingSystem;namespaceDelegateTest{publicclassAnnounce{publicstat
7、icvoidannounceDate()//静态方法,用于打印当前日期{3DateTimedt=DateTime.Now;Console.WriteLine("Today'sdateis{0}",dt.ToLongDateString());}//非静态方法,用于打印当前时间publicvoidannounceTime(){DateTimedt=DateTime.Now;Console.WriteLine("Thecurrenttimeis{0}",dt.
此文档下载收益归作者所有