拓展_实践3_c#面向对象程序设计

拓展_实践3_c#面向对象程序设计

ID:17848855

大小:209.50 KB

页数:8页

时间:2018-09-07

拓展_实践3_c#面向对象程序设计_第1页
拓展_实践3_c#面向对象程序设计_第2页
拓展_实践3_c#面向对象程序设计_第3页
拓展_实践3_c#面向对象程序设计_第4页
拓展_实践3_c#面向对象程序设计_第5页
资源描述:

《拓展_实践3_c#面向对象程序设计》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、拓展_实践3C#面向对象程序设计实践3.4抽象类和抽象方法•使用abstract关键字定义抽象类和抽象方法•抽象方法w只有方法声明,但没有方法实现,是一个空方法w抽象的方法是一种特殊的虚方法,必须被覆盖•抽象类:w包含了抽象方法的类必须声明为抽象类w只能被继承,但不能创建一个抽象类的对象实例•如果你的某个类的方法不知道该如何实现,实现的细节是由子类决定的,那么把它定义成abstract吧!测试代码如下:结果如下:实践3.5密封类和密封方法•使用sealed关键字声明密封类和密封方法•密封类不允许被其他类继承•密封的方法不允许被其所在类的子类方法覆盖•密封的

2、方法必须对基类中的虚方法进行覆盖,提供具体的实现方法,因此在方法的声明中sealed和override修饰符总是同时使用•测试代码如下:实践3.6接口接口所具有的牲:l接口相当于纯的抽象类,可以包含事件、方法和属性的声明,但没有任何实现,也不能包含字段l接口成员默认的访问类型是public,并且只能是publicl继承接口的任何非抽象类必须实现接口的所有成员l一个类可以实现多个接口,一个接口可以继承多个接口结果如下:实践3.7委托和事件一、委托•委托类似于C和C++中的函数指针,用于封装某个方法的调用过程。•委托与函数指针不同的是:w委托是完全面向对象的,

3、它所封装的方法必须与某个类或对象相关联•声明委托语法:[修饰符]delegate返回类型委托名(参数列表);•注:访问修饰符默认为internal,声明委托时只需指定委托指向的原型的类型•测试代码如下:namespacemydelegate{publicclassMyClass{publicvoidOut(){Console.WriteLine("普通成员函数");}publicstaticvoidDisplay(){Console.WriteLine("普通静态函数");}}classProgram{delegatevoidMyDelegate();//

4、声明委托staticvoidMain(string[]args){MyClassmc=newMyClass();MyDelegated=newMyDelegate(mc.Out);//实例化委托,并指向Out法d();//通过委托调用Out方法d=newMyDelegate(MyClass.Display);//将委托指向静态方法Displayd();//通过委托调用Display方法}}}二、事件p事件就是当对象或类状态发生改变时,对象或类发出的信息或通知。pC#中事件使用委拖来为触发时将调用的方法提供类型安全的封装,相当于C++的函数指针。p事件的工作

5、过程:关心某事件的对象向事件中注册事件处理程序,当事件发生时,会调用所有已注册的事件处理程序。p事件的声明[修饰符]event委托名事件名;p注:所有的事件是通过委拖来激活的,返回值一般为voidp事件的注册与取消注册:事件名+=new委托名(方法名);取消:事件名-=new委托名(方法名);测试代码如下:namespacemyevent{classProgram{publicdelegatevoidButtonEventHandler();//先声明委托classTestButton{publiceventButtonEventHandlerOnClic

6、k;//再声明事件publicvoidTestHandler(){Console.WriteLine("TestHandler事件被注册");}publicvoidClick(){OnClick();}}staticvoidMain(string[]args){TestButtonmb=newTestButton();mb.OnClick+=newButtonEventHandler(mb.TestHandler);mb.OnClick+=delegate{Console.WriteLine("匿名事件被注册");};mb.Click();Console.

7、WriteLine("移除TestHandler事件");mb.OnClick-=newButtonEventHandler(mb.TestHandler);mb.Click();}}}实践3.8分部类和分部方法一、分部类分部类是指将类的定义拆分到两个或多个源文件中,每个源文件包含类型定义的一部分,编译应用程序时将把所有部分组合起来。VS在创建Windows窗体应用程序、Web服务包装代码等时都用此方法。分部类用partial关键字来定义二、分部方法分部类中可以包含分部方法,类的一部分包含方法的签名,另一部分包含方法的实现体。测试代码如下:1、新建一个名为

8、PartialTest项目,输入如下代码://---program

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。