《C# Primer Plus中文版》PDF下载

  • 购买积分:19 如何计算积分?
  • 作  者:(美)Klaus Michelsen著;云巅工作室译
  • 出 版 社:北京:人民邮电出版社
  • 出版年份:2002
  • ISBN:7115100527
  • 页数:689 页
图书介绍:

第1章 计算机和计算机编程:基本概念 1

目录 1

1.1 C#是一种面向对象编程语言 2

1.2 硬件 3

1.2.1 主存储器的实质 4

1.2.2 数字系统 5

1.2.3 字节 5

1.2.4 文件 6

1.3 软件 6

1.3.2 操作系统 7

1.3.3 编程语言和编译器 7

1.3.1 执行C#程序的大致过程 7

1.3.4 .NET简介 8

1.3.5 在.NET中编译C#源代码 9

1.4 小结 10

1.5 复习题 11

第2章 你的第一个C#程序 12

2.1 软件开发 13

2.2 软件开发过程 13

2.3 算法和伪码 14

2.4 3个不同的错误类型 15

2.5 面向对象编程:初次体验 16

2.5.1 面向过程编程及其先天缺陷 16

2.5.2 面向对象编程及其优点 17

2.6 软件重用 19

2.7 .NET中代码重用的基本单元:集合 21

2.7.1 从开发者角度看集合 21

2.7.2 从用户角度看集合 22

2.8 .NET框架类库 23

2.9 C#的历史和设计目标 24

2.10 C#背景 24

2.11 C#的设计目标 26

2.12 能用C#编写什么样的程序 27

2.14 开始编程之前 28

2.15 选择文本编辑器 28

2.13 创建C#程序的原理 28

2.16 编写一个简单C#程序的7步 29

2.16.1 打开和使用命令控制台(第1步) 29

2.16.2 输入和保存C#源代码(第2步) 30

2.16.3 将源代码转换成一个PE(.exe)文件(第3步) 32

2.16.4 编译和查找错误(第4步) 32

2.16.5 运行程序(第5步) 33

2.16.6 验证输入(第6步) 33

2.16.7 庆祝的时刻(第7步) 33

2.17 源代码简短分析 33

2.18 语法错误与编译器的注释 34

2.19 小结 34

2.21 编程练习 35

2.20 复习题 35

第3章 C#导游:第一部分 36

3.1 简介 37

3.2 抽象和封装 37

3.2.1 抽象(Abstraction) 37

3.2.2 封装(Encapsulation) 38

3.2.3 学习面向对象编程的一个说明 41

3.3 一个交互式的Hello World!程序 42

3.3.1 编写Hello.cs 42

3.3.2 Hello.cs程序的基本元素 44

3.3.3 几个基本知识 51

3.5 复习题 55

3.4 小结 55

3.6 编程练习 56

第4章 C#导游:第二部分 57

4.1 简介 58

4.2 SimpleCalculator.cs程序所需元素 58

4.2.1 SimpleCalculator.cs程序清单 58

4.2.2 对SimpleCalculator.cs程序的详细分析 60

4.3 用方法简化你的代码 67

4.4 方法就是构造块:用关键字private封装你的Helper方法 68

4.5 小结 69

4.6 复习题 69

4.7 编程练习 70

第5章 你的第一个面向对象C#程序 71

5.1 简介 72

5.2 词汇结构 72

5.2.1 标识符和CaPitaLIcaTioN样式 72

5.2.2 字面值 72

5.2.3 注释和代码诠释 73

5.2.4 分隔符 73

5.2.5 操作符 73

5.2.6 关键字 74

5.3 对电梯模拟的一些思考 74

5.4 概念、目标和电梯模拟程序方案:为评价电梯系统搜集有用统计数据 74

5.5 面向对象程序的一个实例 75

5.5.1 程序SimpleElevatorSimulation.cs清单 76

5.5.2 程序的整体结构 78

5.5.3 对SimpleElevatorSimulation.cs程序的深入分析 79

5.5.4 类关系和统一模型语言(UML) 85

5.6 小结 88

5.7 复习题 88

5.8 编程练习 89

第6章 类型第一部分:简单类型 90

6.1 简介 91

6.2 概览C#中的类型 91

6.2.1 什么是类型 91

6.2.2 C#:一个强类型化语言 92

6.2.3 类型的优点 93

6.2.4 C#类型 94

6.3 简单类型 98

6.3.1 概观简单类型 99

6.3.2 整数类型 102

6.4 Blipos时钟 112

6.4.1 浮点类型 119

6.4.2 decimal类型 123

6.4.3 浮点、decimal和整数值的兼容性 124

6.4.4 显式类型转换 124

6.4.5 常量:字面值的符号名字 125

6.4.6 格式化数字值 128

6.4.7 bool类型:初步接触 130

6.5 小结 130

6.6 复习题 131

6.7 编程练习 132

第7章 类型第二部分:操作符、枚举器和字符串 133

7.1 简介 134

7.2 算术操作符及数字表达式 134

7.3 结合性 137

7.4 括号和优先级 138

7.5 模操作符(%) 139

7.6.1 一元加和一元减 143

7.6 一元操作符 143

7.6.2 自增和自减操作符 144

7.7 判断表达式的类型 146

7.8 在一个表达式中组合不同的类型 148

7.9 访问组件的元数据:简介 151

7.10 枚举常量 154

7.11 枚举器操作符 156

7.12 转换 157

7.13 System.Enum方法 157

7.14 字符和文本 157

7.15 char类型 157

7.16 string类型 160

7.16.1 string字面值和string对象 161

7.16.2 逐字字符 161

7.16.3 使用字符串 162

7.16.4 在字符串中嵌入格式化数字 164

7.16.5 使用字符串 167

7.17 小结 178

7.18 复习题 179

7.19 编程练习 180

第8章 流程控制第一部分:分支语句及相关概念 181

8.1 流程控制简介 182

8.2 if分支语句 183

8.2.1 简单if语句 183

8.2.2 复合语句 184

8.2.3 可选else子句 185

8.3 比较操作符和布尔表达式 187

8.4 嵌套if语句 189

8.5 多分支if-else语句 193

8.6 逻辑操作符 196

8.6.1 逻辑与(AND)操作符:&& 198

8.6.2 逻辑或(OR)操作符:‖ 200

8.6.3 短路求值和位操作符&与| 202

8.6.4 位异或操作符:^ 203

8.6.5 逻辑非(NOT)操作符:! 203

8.7 变量的作用域 205

8.8 goto语句 208

8.9 switch语句 210

8.9.1 switch语句规则1 213

8.9.2 switch语句规则2 214

8.9.3 switch语句规则3 216

8.9.4 switch语句规则4 218

8.9.5 使用switch语句 218

8.10 条件操作符 219

8.11 小结 219

8.12 复习题 220

8.13 编程练习 221

第9章 流程控制第二部分:迭代语句 222

9.2 while循环语句 223

9.1 遍历、分析和生成数据序列 223

9.3 do-while循环语句 227

9.4 for循环语句 230

9.5 跳转语句break和continue 235

9.5.1 break语句 235

9.5.2 continue语句 236

9.6 结构化编程和结构化的结构 237

9.7 组合赋值操作符 239

9.8 嵌套迭代语句 241

9.9 编程练习 246

9.10 小结 247

9.11 复习题 248

9.12 编程练习 249

第10章 数组第一部分:数组基本知识 251

10.1 数组的声明和定义 252

10.2 访问单个数组元素 255

10.3 数组索引越界 259

10.4 调整基于0的数组索引 262

10.5 初始化数组 263

10.6 用foreach语句遍历整个数组 264

10.7 System.Array是一个引用类型 265

10.8 数组和相等性 267

10.9 数组和方法 269

10.9.1 数组元素作为方法中的参数 269

10.9.2 数组引用作为方法参数 270

10.9.3 克隆数组对象 273

10.10 执行数组值相等性比较的方法 276

10.11 命令行参数 277

10.12 使用数组作为方法的返回值 279

10.13 引用对象的数组元素 282

10.14 数组作为类中的实例变量 285

10.15 小结 292

10.16 复习题 293

10.17 编程练习 294

第11章 数组第二部分:多维数组——数组检索与排序 295

11.1.1 二维数组 296

11.1 多维数组 296

11.1.2 锯齿数组 311

11.2 多于二维的数组 314

11.3 System.Array的内置方法 317

11.4 特殊数组技术 318

11.5 检索 325

11.5.1 顺序检索(Sequential Search) 326

11.5.2 二分检索(Binary Search) 327

11.5.3 用System.Array的IndexOf方法检索 332

11.6 小结 333

11.7 复习题 333

11.8 编程练习 334

第12章 类解剖第一部分:静态类成员和方法的使用 335

12.1 类解剖:概览 336

12.2 数据成员(data member) 338

12.2.1 实例变量(instance variable) 338

12.2.2 静态变量(static variable) 338

12.2.3 常量成员(constant member) 344

12.2.4 只读成员(readonly member) 345

12.2.5 声明数据成员:概览 345

12.3 函数成员 346

12.3.1 方法 346

12.3.2 静态方法(static methods) 348

12.4 小结 370

12.5 复习题 371

12.6 编程练习 373

第13章 类解剖第二部分:对象创建和垃圾回收 375

13.1 实例构造函数 376

13.1.1 为什么需要实例构造函数 376

13.1.2 使用实例构造函数 378

13.1.3 重载实例构造函数 381

13.1.4 构造函数初始化器 386

13.1.5 私有实例构造函数 388

13.2 静态构造函数 388

13.3 只读成员(readonly member) 389

13.4.1 对象如何被废弃 390

13.4 垃圾回收:自动动态内存管理 390

13.4.2 垃圾回收器的任务 393

13.4.3 释放非内存有限资源 394

13.5 小结 405

13.6 复习题 406

13.7 编程练习 407

第14章 类解剖第三部分:编写直观代码 409

14.1 属性 410

14.1.1 属性与存取器和变异器方法 410

14.1.2 使用属性提高效率 415

14.1.3 用属性实现延迟初始化和惰性更新 416

14.2 索引器:像数组一样使用对象 419

14.2.1 从索引器所寄居的对象中调用索引器 422

14.2.2 索引器重载:同一类中的多索引器 422

14.2.3 避免滥用索引器 426

14.3 操作符重载 427

14.4 用户自定义隐式和显式转换 434

14.4.1 需要用户自定义转换的两种情形 435

14.4.2 使用非用户自定义转换技术 436

14.4.3 用户自定义转换语法 436

14.4.4 综合运用用户自定义和隐式转换 441

14.5 嵌套类型 442

14.5.2 简单嵌套类示例 443

14.5.1 嵌套类的优点 443

14.6 小结 444

14.7 复习题 444

14.8 编程练习 446

第15章 名字空间、编译单元和集合 447

15.1 自定义名字空间 448

15.2 全局匿名名字空间 448

15.3 名字空间和编译单元 449

15.4 嵌套名字空间 450

15.5 名字空间语法 452

15.6 using指示符的更多知识 453

15.7.1 将几个编译单元编译成一个集合 455

15.7 编译单元、名字空间及集合 455

15.7.2 重用集合中的名字空间 458

15.7.3 将名字空间分布到几个集合中 460

15.8 应用Ildasm探索集合 462

15.9 小结 464

15.10 复习题 464

15.11 编程练习 466

第16章 继承第一部分:基本概念 467

16.1 继承的必需性 468

16.2 继承基础知识 473

16.3 访问修饰符及继承 480

16.3.1 访问修饰符protected 480

16.3.2 访问私有基类成员 480

16.3.4 C#的访问修饰符:概览 481

16.3.3 internal protected访问修饰符 481

16.4 派生类构造函数 482

16.5 索引器也能被继承和覆盖 485

16.6 在基类中调用覆盖函数 487

16.7 通过继承重用.NET框架类库 490

16.8 多级派生类 491

16.9 方法覆盖及重载原理不同 494

16.10 小结 495

16.11 复习题 496

16.12 编程练习 497

第17章 继承第二部分:抽象函数、多态及接口 499

17.1 抽象方法、属性、索引器及类 500

17.2 多态(polymorphism) 503

17.2.1 后代类的对象具有多个类型 503

17.2.2 动态捆绑虚方法和(get,set)存取器 503

17.2.3 实例学习:使用多态创建简单绘图程序 505

17.3 丢失和重新获取类型信息 511

17.3.1 is操作符 511

17.3.2 对象类型转换 511

17.3.3 as操作符 514

17.4 最终的基类:System.Object 514

17.5 隐藏方法 518

17.6 用new和override关键字控制版本 520

17.7 多重继承 522

17.8 接口 523

17.8.1 定义接口 524

17.8.2 实现接口 526

17.8.3 应用接口的一般编程 528

17.8.4 构建接口层次 531

17.8.5 接口转换 532

17.8.6 覆盖虚接口 532

17.8.7 显式实现接口函数 533

17.9 小结 535

17.10 复习题 535

17.11 编程练习 536

第18章 结构 538

18.1 定义结构 539

18.2 装箱和拆箱 541

18.3 用与不用new关键字创建结构 542

18.4 值类型和引用类型 543

18.5 小结 544

18.6 复习题 544

18.7 编程练习 544

第19章 异常处理 545

19.1 异常处理概览 546

19.2 没有try-catch-finally的情形 546

19.3 try和catch块 548

19.4 捕获函数调用链上端的异常对象 550

19.5 多重catch块 551

19.6 finally块 552

19.7 嵌套try块 554

19.8 用throw显式抛出异常 555

19.9 编写自定义异常 557

19.10 小结 560

19.11 复习题 560

19.12 编程练习 561

第20章 代表和事件 562

20.1 代表 563

20.1.1 代表数组及方法调用中作为参数的代表 565

20.1.2 组播代表 569

20.2 事件 571

20.3 小结 577

20.4 复习题 577

20.5 编程练习 577

第21章 预处理、XML文档及特性 579

21.1 预处理程序指令 580

21.1.1 用#define、#if和#endif排除和包含代码 580

21.1.2 #undef:取消定义标识符 582

21.1.3 #elif和#else 582

21.1.4 #error和#warning 582

21.1.5 #region和#endregion 582

21.1.6 #line 582

21.2 XML说明文档 583

21.3 特性 584

21.4 小结 588

21.5 复习题 588

21.6 编程练习 589

第22章 文件I/O基础 592

22.1 对文件的需要 593

22.2 流基础和文件I/O 593

22.3 文件I/O类概览 593

22.4 FileInfo类 594

22.5 用StreamReader和 StreamWriter进行文本文件输入和输出 596

22.6 用FileStream类进行二进制输入和输出 600

22.8 复习题 602

22.7 小结 602

22.9 编程练习 603

第23章 递归基础知识 604

23.1 不同方法的待决方法实例 605

23.2 同一个方法的待决方法实例 606

23.3 应用递归计算n的阶乘 608

23.4 递归和迭代 610

23.5 使用递归进行二分检索 611

23.6 小结 613

23.7 复习题 614

23.8 编程练习 614

附录A 复习题和编程练习答案 616