欢迎来到天天文库
浏览记录
ID:40522288
大小:43.00 KB
页数:4页
时间:2019-08-04
《C#接口实例应用的的深入探讨》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、C#接口实例应用的的深入探讨interfaceIPrint{voidPrint();}classA:IPrint{publicvoidPrint(){System.Console.WriteLine("A");}}classB:IPrint{publicvoidPrint(){System.Console.WriteLine("B");}}classAppMain{publicstaticvoidPrint(IPrintobj){obj.Print();}publicstaticvoidMain(){Print(newA());//d
2、isplayAPrint(newB());//displayB}}在这个例子中,IPrint接口中定义了Print方法,但没有实现方法体.类A和类B都继承了IPrint接口,并且实现了不同的Print方法.在AppMain中调用AB,获得不同的打印结果C#接口实例应用问题的提出,假设我们公司有两种程序员:VB程序员,指的是用VB写程序的程序员,用clsVBProgramer这个类表示;Delphi程序员指的是用Delphi写程序的程序员,用clsDelphiProgramer这个类来表示。每个类都有一个WriteCode()方法。C
3、#接口实例定义如下:1.class clsVBProgramer() 2.{ 3..... 4.WriteCode() 5.{ 6. //用VB语言写代码; 7.} 8..... 9.} 10. 11.class clsDelphiProgramer() 12.{ 13..... 14.WriteCode() 15.{ 16. //用Delphi语言写代码; 17.} 18. .... 19.} 现在公司来了一个项目,要求派某个程序员写一个程序。C#接口实例20.class clsProject() 21.{ 22.
4、.... 23.WritePrograme(clsVBProgramer programer)//用VB写代码 24.{ 25. programer.WriteCode(); 26.} 27.WritePrograme(clsDelphiProgramer programer) 28.//重载方法,用Delphi写代码 29.{ 30. programer.WriteCode(); 31.} 32....... 33.} 在主程序中我们可以这样写:C#接口实例:1.main() 2.{ 3. clsProject pr
5、oj=new clsProject; 4. //如果需要用VB写代码 5. clsVBProgramer programer1=new clsVBProgramer; 6. proj.WritePrograme(programer1); 7. //如果需要用Delphi写代码 8. clsDelphiProgramer programer2=new clsDelphiProgramer; 9. proj.WritePrograme(programer2); 10.} 但是如果这时公司又来了一个C#程序员,我们怎
6、么改这段程序,使它能够实现用C#写程序的功能呢?我们需要增加一个新类clsCSharpProgramer,同时在此clsProject这个类中要再次重载WritePrograme(clsCSharpProgramerprogramer)方法。这下麻烦多了。如果还有C程序员,C++程序员,JAVA程序员呢。麻烦大了!但是如果改用接口,就完全不一样了,首先声明一个程序员接口:C#接口实例:11.interface IProgramer() 12.{ 13.WriteCode(); 14.} 然后声明两个类,并实现IProgramer接口:
7、15.class clsVBProgramer():IProgramer 16.{ 17..... 18.WriteCode() 19.{ 20. //用VB语言写代码; 21.} 22..... 23.} 24. 25.class clsDelphiProgramer():IProgramer 1.{ 2..... 3.WriteCode() 4.{ 5. //用Delphi语言写代码; 6.} 7. .... 8.} 9.对clsProject这个类进行一下修改: 10.class clsProject() 11
8、.{ 12..... 13.WritePrograme(IProgramer programer) 14.{ 15. programer.WriteCode();//写代码 16.} 17....... 18.}
此文档下载收益归作者所有