
C#语言程式设计基础
《C#语言程式设计基础》是2010年12月30日清华大学出版社出版的图书,作者是郑宇军、王侃、凌海风。
基本介绍
- 书名:C#语言程式设计基础
- 作者:郑宇军、王侃、凌海风
- ISBN:9787302168478
- 定价:39元
- 出版社:清华大学出版社
- 出版时间:2010年12月30日
- 装帧:平装
- 开本:16开
内容简介
C#语言是。NET平台上的核心开发语言,C# 2.0版本更是将泛型思想和对象技术进行了完美融合。本书是关于C#语言程式设计的基础教科书,本书介绍C#的基本语法和类型系统;面向对象程式设计,包括对象、接口、继承和多态性;泛型程式设计,包括泛型类型、可空类型、泛型方法和匿名方法;商业套用开发的基础知识,包括异常处理、档案操作和多执行绪等。
本书可作为高等院校计算机及相关专业的程式设计语言教材,也可供专业开发人员学习参考。
图书前言
作本书期间,幸值David Gries先生来华访问。交流中谈及大学计算机专业的第一门程式设计课程,Gries非常强调抽象编程思维和良好编程风格的培养,并提倡“对象先行”(object first)的教学方式,以及“深入语言编程”(programming into a language)的实践方法。
这也引发了笔者的进一步思考。软体开发方式发生了深刻的变革;软体已不再是个人精雕细琢的艺术品,而是一系列标準化软体过程活动的产品。在引导读者走入编程世界的过程中,应当选取一门简单易学、类型安全且完全面向对象的程式设计语言,同时又要避免课程沦为开发工具和语言的职业培训。而无论读者日后成长为计算机理论研究的学者,还是专业软体开发人员,科学的编程思想始终是他们脑中的“武功秘诀”,流行的语言工具则随时能够成为他们手中的利器。
C#语言脱胎于C/C++,同时汲取了Java、Delphi等语言的精华,是.NET平台上的核心开发语言。C# 2.0更是将泛型编程思想与面向对象技术进行了完美的融合,使其成为符合现代软体工程要求的主流程式设计语言。为适应.NET技术发展的趋势,特别是满足大中专院校开设C#程式设计课程的要求,我们组织编写了此书。本书循序渐进、深入细緻地讲解了C#语言的编程技术,并重点介绍了C# 2.0的新增特性。全书内容共包括4个部分17章。
* C#语言基础:第1章介绍了.NET技术和C#语言的概貌,第2~5章则依次讲解了C#的类型系统、常量和变数、表达式,以及控制结构。
* 面向对象的程式设计:第6章和第7章详细介绍了C#面向对象的基本要素,包括类的封装、继承和多态性,第8章则通过若干常用类型来加深对相关概念的理解。
* 泛型程式设计:第9章是泛型的基础概念,第10章的可空类型就是泛型结构的一个典型实例,第11章继续深入讲解了泛型接口、方法和委託,第12章和第13章则分别介绍了有关泛型的两个高级套用——遍历器和匿名方法。
* 商业套用开发:第14~17章介绍了C#商业套用开发的必备知识,包括异常处理、档案操作、多执行绪处理,以及代码组织。
每一章在结束时都对主要知识点进行了回顾和总结,并通过一定数量的习题来帮助读者温习所学内容。对于面向对象技术的初学者来说,最困难的部分应是类的继承和多态性;对于有一定基础的开发者来说,C#语言中最不易掌握的可能是委託(delegate)
这个概念。而C# 2.0新增的两个主要特性——泛型和匿名方法,又恰恰增加了这两方面内容的深度。因此第7、9、13章是本书的难点所在。
全书提供了大量鲜明生动的案例程式,全部原始码及配套课件、测试题等相关资源均可在清华大学出版社网站下载。本书另外配有上机实验指导书,可供教学使用。
针对高校计算机科学与技术专业、计算机套用专业与非计算机专业程式设计课程的不同需求,下表分别给出了建议的课程学时安排(括弧中表示上机学时,×表示选修或自学内容)。
图书目录:
第1章 绪论 1
1.1 Microsoft .NET技术 1
1.2 .NET Framework 2
1.2.1 公共语言运行时(CLR) 3
1.2.2 .NET类库 3
1.3 C#语言简介 4
1.4 开发第一个C#应用程式 6
1.5 C#程式的基本结构 8
1.5.1 程式集 8
1.5.2 命名空间 10
1.5.3 类型和方法 10
1.5.4 程式注释 12
1.6 与用户进行互动 12
1.6.1 控制台互动 12
1.6.2 Windows窗体应用程式 15
本章小结 17
习题1 17
第2章 C#数据类型 19
2.1 值类型 19
2.1.1 整数类型 19
2.1.2 字元类型 22
2.1.3 实数类型 23
2.1.4 布尔类型 24
2.1.5 结构 25
2.1.6 枚举 26
2.2 引用类型 28
2.2.1 类 28
2.2.2 接口 31
2.2.3 委託 33
2.2.4 数组 35
2.3 类型转换 39
2.3.1 数值转换 39
2.3.2 枚举转换 42
2.3.3 引用转换 43
2.3.4 装箱和拆箱转换 45
2.3.5 转换检查 47
本章小结 47
习题2 47
第3章 成员、变数和常量 50
3.1 基本成员类型 50
3.1.1 栏位 50
3.1.2 方法 51
3.1.3 嵌套成员 56
3.2 成员访问限制 56
3.2.1 private修饰符 56
3.2.2 public修饰符 57
3.2.3 protected修饰符 58
3.2.4 internal修饰符 58
3.2.5 访问限制级别 60
3.3 静态成员和非静态成员 61
3.4 变数 63
3.5 常量 66
本章小结 68
习题3 68
第4章 操作符和表达式 71
4.1 操作符 71
4.2 算术表达式 72
4.2.1 基本算术运算 72
4.2.2 枚举运算 75
4.2.3 模运算 76
4.2.4 其他 77
4.3 自增和自减表达式 79
4.4 位运算表达式 80
4.4.1 取补运算 80
4.4.2 与、或、异或运算 81
4.4.3 移位运算 82
4.5 赋值表达式 83
4.6 关係表达式 84
4.6.1 比较运算 84
4.6.2 类型判断 85
4.7 条件逻辑表达式 87
4.8 其他特殊表达式 88
4.8.1 一元加减表达式 88
4.8.2 条件表达式 89
4.8.3 类型表达式 89
4.8.4 创建表达式 93
4.8.5 溢出检查表达式 95
本章小结 96
习题4 96
第5章 流程控制 98
5.1 选择结构 98
5.1.1 if语句 98
5.1.2 switch语句 101
5.2 循环结构 103
5.2.1 while循环语句 103
5.2.2 do-while循环语句 104
5.2.3 for循环语句 106
5.2.4 foreach循环语句 109
5.3 跳转结构 111
5.3.1 break语句 111
5.3.2 continue语句 112
5.3.3 return语句 113
5.3.4 goto语句 114
本章小结 116
习题5 116
第6章 深入理解类 118
6.1 面向对象的方法学 118
6.2 构造函式和析构函式 119
6.2.1 构造函式 119
6.2.2 析构函式 121
6.2.3 静态构造函式 121
6.3 属性 123
6.4 索引函式 126
6.5 事件 129
6.5.1 事件与委託 129
6.5.2 使用EventHandler委託对象 131
6.5.3 Windows控制项事件 133
6.6 操作符重载 135
6.7 this关键字 139
本章小结 142
习题6 142
第7章 继承和多态性 145
7.1 继承 145
7.1.1 基类和派生类 145
7.1.2 成员覆盖 149
7.1.3 对象生命周期 151
7.2 多态性 153
7.2.1 成员的虚拟和重载 153
7.2.2 抽象方法和抽象类 157
7.2.3 密封方法和密封类 160
7.3 接口及其实现 162
7.3.1 接口和抽象类 162
7.3.2 接口方法调用 163
7.3.3 接口与集合 168
本章小结 173
习题7 174
第8章 常用类型 176
8.1 Math类 176
8.2 字元串类型 179
8.2.1 构造字元串 179
8.2.2 字元操作 180
8.2.3 子串操作 183
8.2.4 格式化与解析 187
8.2.5 使用StringBuilder类 192
8.3 窗体和控制项类 194
8.3.1 与窗体界面有关的若干结构 194
8.3.2 Form类 195
8.3.3 Control类 198
8.3.4 其他基本控制项 199
本章小结 202
习题8 203
第9章 泛型基础 204
9.1 为何使用泛型 204
9.2 创建泛型类 206
9.2.1 泛型集合示例 206
9.2.2 成员与类型参数 208
9.2.3 调用类型参数 210
9.2.4 泛型的静态成员 211
9.3 多参数泛型 212
9.3.1 使用多个类型参数 212
9.3.2 类型参数与标识 215
9.4 类型限制 216
9.4.1 主要限制 216
9.4.2 次要限制 216
9.4.3 构造函式限制 219
9.5 泛型与继承 219
9.5.1 普通基类与派生泛型类 220
9.5.2 泛型基类与普通派生类 222
9.5.3 泛型基类与泛型派生类 223
本章小结 226
习题9 227
第10章 可空类型 229
10.1 引入可空类型 229
10.2 泛型结构Nullable 232
10.2.1 概述 232
10.2.2 结构成员 233
10.3 可空类型的转换 234
10.4 可空类型上的操作 237
10.4.1 类型检查 237
10.4.2 空值结合 237
10.4.3 操作符提升 238
10.5 可空布尔类型 241
本章小结 243
习题10 243
第11章 泛型接口、方法和委託 245
11.1 泛型接口 245
11.1.1 概述 245
11.1.2 继承中的唯一性 250
11.1.3 泛型接口与集合 253
11.2 泛型方法 257
11.2.1 概述 257
11.2.2 定义和调用 258
11.2.3 方法标识 260
11.2.4 方法重载 262
11.3 泛型方法与委託 267
本章小结 270
习题11 270
第12章 遍历器 273
12.1 foreach语句与遍历 273
12.2 理解可枚举类型 275
12.2.1 IEnumerable和IEnumerable<T>接口 275
12.2.2 实现多种遍历方式 277
12.3 使用枚举器 283
12.3.1 Iterator模式 283
12.3.2 自定义枚举器 284
12.4 遍历机制 287
12.4.1 遍历器代码 287
12.4.2 遍历流程 289
12.5 自我枚举和遍历 290
本章小结 294
习题12 294
第13章 匿名方法 296
13.1 命名方法和匿名方法 296
13.2 深入了解Delegate类 298
13.2.1 创建委託对象 298
13.2.2 属性 299
13.2.3 方法调用 301
13.3 匿名方法的定义规则 303
13.4 外部变数 304
13.5 委託对象作为方法参数和返回值 307
13.6 在事件中使用匿名方法 312
本章小结 316
习题13 316
第14章 异常处理 319
14.1 错误和异常 319
14.2 C#中的异常处理结构 322
14.2.1 try-catch语句 322
14.2.2 try-catch-finally语句 324
14.2.3 try-finally语句 328
14.2.4 throw语句 328
14.3 异常的层次结构 330
14.3.1 异常传播 331
14.3.2 Exception类 333
14.3.3 常见异常类型 335
14.4 使用异常的原则和技巧 337
本章小结 338
习题14 338
第15章 档案IO操作 341
15.1 档案系统概述 341
15.2 驱动器、目录和档案 342
15.2.1 与IO操作相关的枚举 342
15.2.2 驱动器 343
15.2.3 目录 346
15.2.4 档案 349
15.3 档案流和数据流 352
15.3.1 抽象类Stream 352
15.3.2 档案流FileStream 354
15.3.3 流的文本读写器 356
15.3.4 流的二进制读写器 359
15.3.5 常用的其他流对象 360
15.4 自定义IO操作 363
本章小结 369
习题15 369
第16章 进程和执行绪 371
16.1 进程 371
16.2 执行绪 376
16.2.1 使用多执行绪 376
16.2.2 执行绪对象及其状态 380
16.2.3 执行绪同步 383
16.2.4 异步回调 389
本章小结 392
习题16 392
第17章 代码组织与管理 394
17.1 分部类型 394
17.1.1 分部类型的定义 394
17.1.2 分部泛型 396
17.1.3 分部类型的套用 398
17.2 代码中的预处理器指令 402
17.2.1 条件编译 402
17.2.2 编译警告和错误 407
17.2.3 其他一些预处理器指令 408
17.3 XML代码注释 408
17.3.1 使用XML注释 408
17.3.2 关于注释标记 411
本章小结 413
习题17 413
参考文献 415