
本书以Visual Studio 2010为平台,系统介绍C#语言的基础知识和面向对象程序设计的方法,主要讲述.NET框架、C#语言语法基础、类和对象、继承和多态、委托和事件、文件管理、异常处理、接口、泛型等基本概念及应用。本书提供丰富的示例代码和课后习题。
本书适合作为大学本科、高职高专等各类高等学院计算机及相关专业的教材,也可供各类培训和用户学习参考用书。
C#是微软公司为.NET平台开发的一种新型面向对象语言,是.NET平台应用程序开发的首选语言。它是在综合了C、C++等目前所有高级语言优点的基础上发展而来的,功能强大,使用简单。近年来,它已成为.NET应用程序开发人员无可争议的语言选择。
本书为C#语言的基础知识入门教材,从C#语言的基本概念开始,由浅入深,内容包括.NET框架,C#语言语法基础,类和对象,继承和多态,委托和事件,文件管理,异常处理,接口,泛型等概念及应用。本书通过丰富的例题、详尽的讲解,深入浅出地将C#语言介绍给读者。
第1章对C#程序和Visual Studio 2010开发环境进行了介绍,主要阐述C#程序的基本结构以及如何使用Visual Studio 2010集成开发环境进行C#程序的开发。
第2章对C#语法基础进行了重点说明,包括数据类型、操作符和表达式、控制结构以及数据的输入和输出。
第3章对面向对象程序设计进行了阐述,主要说明了面向对象的基本概念。
第4章对类和对象的成员进行了说明,主要介绍成员的访问控制和方法的使用以及类的特殊方法。
第5章对继承和多态的概念与使用进行了简要介绍。
第6章对委托和事件的基本概念与使用方法进行了说明,并重点对委托和方法的关系及事件的订阅和发布进行了说明。
第7章对文件和流的概念进行了说明,主要对流的读写和文件的持久性进行了介绍。
第8章对异常处理的概念进行了介绍,主要对异常处理的结构以及异常处理的捕获和传播进行说明。
第9章对接口的概念进行了说明,并对接口和多态、接口和多继承、接口和集合的关系与如何使用接口进行了重点介绍。
第10章对泛型的概念进行了说明,并对泛型的限制、继承、接口、方法重点进行介绍。
本书第1章~第3章由华北理工大学魏明军执笔,第4章~第10章由华北理工大学张振友执笔。全书由张振友统稿。
由于作者水平有限,书中难免存在错误和缺点,希望读者提出宝贵意见。
编者
2016年1月
第1章C#程序与Visual Studio开发环境/1
1.1C#语言和.NET技术简介1
1.1.1.NET技术简介1
1.1.2C#概述3
1.2C#程序的基本结构3
1.2.1注释5
1.2.2命名空间5
1.2.3类型及其成员5
1.2.4程序主方法6
1.2.5程序集6
1.3Visual Studio开发环境6
1.3.1Visual Studio 2010的启动6
1.3.2创建项目6
1.3.3Visual Studio 2010界面介绍7
1.3.4编写代码环境8
1.3.5编辑、编译和运行一个C#程序9
1.4本章小结9
1.5习题9
第2章C#语法基础/11
2.1数据类型11
2.1.1简单值类型11
2.1.2复合值类型14
2.1.3数组17
2.1.4类型转换20
2.2操作符和表达式21
2.2.1算术操作符21
2.2.2自增和自减操作符22
2.2.3位操作符23
2.2.4赋值操作符25〖1〗C#程序设计[3]〖3〗2.2.5关系操作符26
2.2.6逻辑操作符26
2.2.7条件操作符27
2.2.8操作符的优先级及结合性28
2.3控制结构29
2.3.1选择结构29
2.3.2循环结构36
2.3.3循环的嵌套41
2.3.4跳转结构43
2.4数据的输入和输出46
2.4.1控制台输出47
2.4.2控制台输入48
2.4.3处理字符串方法49
2.5本章小结51
2.6习题51
第3章面向对象程序设计概述/53
3.1程序设计语言53
3.2面向对象的基本概念53
3.2.1对象54
3.2.2类54
3.2.3消息和通信55
3.2.4关系55
3.2.5封装56
3.2.6继承56
3.2.7多态性57
3.2.8接口和组件58
3.3本章小结58
3.4习题58
第4章类和对象/59
4.1成员59
4.1.1成员种类59
4.1.2成员访问限制60
4.1.3静态成员和非静态成员61
4.1.4常量字段和只读字段63
4.2方法64
4.2.1定义方法64
4.2.2方法的返回值65
4.2.3参数类型66
4.2.4方法的重载69
4.3类的特殊方法70
4.3.1构造函数和析构函数70
4.3.2属性74
4.3.3索引函数76
4.3.4操作符重载79
4.4this对象引用82
4.5本章小结83
4.6习题84
第5章继承和多态/86
5.1继承86
5.1.1基类和派生类86
5.1.2隐藏基类成员89
5.1.3base关键字90
5.1.4对象的生命周期91
5.2多态性92
5.2.1虚拟方法和重载方法92
5.2.2抽象类和抽象方法94
5.2.3密封类和密封方法95
5.3本章小结98
5.4习题98
第6章委托和事件/100
6.1委托和方法100
6.1.1通过委托来封装方法100
6.1.2委托的加减运算101
6.1.3传递委托对象102
6.1.4Delegate类型成员104
6.2匿名方法105
6.2.1定义和调用匿名方法105
6.2.2外部变量106
6.3事件处理108
6.3.1委托发布和订阅108
6.3.2事件发布和订阅110
6.3.3使用EventHandler类113
6.3.4在事件中使用匿名方法114
6.4本章小结116
6.5习题116
第7章文件管理/118
7.1文件和流118
7.1.1文件类119
7.1.2Directory类和File类123
7.1.3类DirectoryInfo128
7.1.4文件类FileInfo131
7.2流的读写器133
7.2.1抽象类Stream133
7.2.2文件流类FileStream135
7.2.3内存数据流类MemoryStream138
7.2.4缓冲数据流类BufferedStream140
7.2.5字符数据的读写TextReader类和TextWriter类146
7.2.6二进制数据的读写BinaryReader类和BinaryWriter类148
7.3基于文件的对象持久性151
7.3.1实现对象持久性151
7.3.2.NET中的自动持久性支持154
7.4本章小结158
7.5习题158
第8章异常处理/160
8.1异常的基本概念160
8.1.1程序异常160
8.1.2异常处理160
8.2异常的处理结构162
8.2.1trycatch语句162
8.2.2trycatchfinally语句165
8.2.3tryfinally语句168
8.2.4throw语句169
8.3异常的传播172
8.3.1异常传播172
8.3.2Exception类和异常信息172
8.4自定义异常类175
8.5本章小结177
8.6习题178
第9章接口/180
9.1接口的定义和使用180
9.1.1接口的定义180
9.1.2接口的实现181
9.2接口与多态183
9.2.1通过接口实现多态183
9.2.2显式方法和隐式方法的并存实现多态184
9.3接口和多继承187
9.3.1多继承概述187
9.3.2基于接口的多继承187
9.3.3解决二义性189
9.4接口与集合191
9.4.1集合型接口及其实现191
9.4.2列表、队列和堆栈192
9.5本章小结199
9.6习题199
第10章泛型/201
10.1泛型类204
10.1.1泛型类的定义和使用204
10.1.2使用“抽象型”变量205
10.1.3使用多个类型参数206
10.1.4类型参数与标识207
10.1.5泛型的静态成员209
10.2类型限制210
10.2.1主要限制210
10.2.2次要限制211
10.2.3构造函数限制212
10.3泛型继承212
10.4泛型接口215
10.4.1泛型接口的定义215
10.4.2泛型接口的实现216
10.4.3避免二义性218
10.4.4泛型接口与泛型集合219
10.5泛型方法224
10.5.1泛型方法的定义和使用224
10.5.2泛型方法的重载225
10.5.3泛型方法与委托226
10.6本章小结226
10.7习题227
参考文献/229