《C#面向对象编程》PDF下载

  • 购买积分:21 如何计算积分?
  • 作  者:周长发编著
  • 出 版 社:北京:电子工业出版社
  • 出版年份:2007
  • ISBN:9787121038136
  • 页数:761 页
图书介绍:本书以面向对象编程技术和.NET框架类库为主轴,透彻地介绍了C#的语法、编程思想和高级.NET框架编程技术。全书分为三部分二十二章,全面详细地解说了C#的技术要点,包括C#语言基础、C#的面向对象特征、异常处理、委托与事件、集合、泛型、字符串与正则表达式、特性、反射、程序集与版本控制、.NET框架的内存管理、多线程、Windows窗体、GDI+、与非托管代码互操作等,并为每一个知识点都提供了典型实例。本书基于C#和.NET框架的最新版本而编写,介绍了C#的最新特色,包括泛型、匿名方法、迭代器、静态类、分部类型和可空类型等。本书既阐述了C#的基础知识,也介绍了C#的高级应用技术,包括多线程、异步调用、图形图像处理、游戏编程、与COM等非托管代码的互操作以及插件编程等。本书适合所有希望了解和掌握C#和.NET的开发人员阅读,是大专院校计算机相关专业和各类培训班的理想教学参考书。

第1部分 C#语言基础 2

第1章 C#概述 2

1.1 C#溯源 2

1.2 C#与Microsoft.NET 4

1.3 C#的基本特征 5

1.4 C#编程的两个要点 7

1.4.1 编程方法学:面向对象编程 7

1.4.2 编程库:.NET框架类库 9

1.5 安装C#开发工具 10

1.6 小结 11

1.7 练习 11

第2章 开始C#编程 12

2.1 编写“Hello World!”程序 12

2.2 编译和执行程序 13

2.3 程序结构 14

2.3.1 注释 15

2.3.2 命名空间 15

2.3.3 类 15

2.3.4 Main()方法 15

2.3.5 方法调用 16

2.3.6 文本、标识符与关键字 16

2.3.7 语句 17

2.3.8 空白字符 17

2.4 使用Visual Studio 2005来编程 17

2.4.1 Visual Studio 2005是一种集成开发环境 17

2.4.2 基于Visual Studio 2005的C#编程 18

2.4.3 解决方案与项目 20

2.4.4 类视图 20

2.4.5 功能强大的文本编辑器 22

2.4.6 自动生成的代码分析 24

2.4.7 生成与查错 25

2.4.8 执行与调试 27

2.5 小结 29

2.6 练习 29

第3章 变量与常量 30

3.1 C#程序的内存类型 30

3.1.1 堆栈 30

3.1.2 托管堆 31

3.1.3 非托管堆 32

3.2 变量 32

3.3 类型 32

3.3.1 所有类型都是类 32

3.3.2 引用类型 33

3.3.3 值类型 33

3.3.4 基本类型 34

3.4 变量操作 38

3.4.1 声明变量和变量的作用域 38

3.4.2 给变量赋值 40

3.5 常量 41

3.6 类型转换 42

3.6.1 隐式转换 42

3.6.2 显式转换 44

3.6.3 装箱与拆箱 46

3.7 数组 48

3.8 可空类型 50

3.8.1 定义 51

3.8.2 包装与解包 51

3.8.3 可空转换 51

3.8.4 装箱与拆箱 52

3.9 三个基本的.NET框架类 53

3.9.1 Console类 53

3.9.2 Convert类 57

3.9.3 Math类 58

3.10 小结 59

3.11 练习 60

第4章 表达式与运算符 61

4.1 表达式 61

4.2 运算符 61

4.2.1 基本运算符 62

4.2.2 赋值运算符 65

4.2.3 算术运算符 65

4.2.4 一元加、减运算符 66

4.2.5 比较运算符 66

4.2.6 逻辑运算符 67

4.2.7 移位运算符 70

4.2.8 条件逻辑运算符 71

4.2.9 三元运算符 72

4.2.10 提升运算符 72

4.2.11 空合并运算符 74

4.3 运算符的优先级和结合性 75

4.4 小结 76

4.5 练习 76

第5章 程序流程控制 77

5.1 语句和语句块 77

5.2 选择语句 78

5.2.1 if...else 78

5.2.2 switch 81

5.3 循环语句 83

5.3.1 while 83

5.3.2 do...while 85

5.3.3 for 87

5.4 跳转语句 89

5.4.1 break 89

5.4.2 continue 90

5.4.3 return 90

5.4.4 goto 91

5.5 小结 93

5.6 练习 93

第2部分 C#面向对象编程 96

第6章 面向对象编程技术 96

6.1 UML基础 96

6.1.1 简介 97

6.1.2 用例图 97

6.1.3 类图和对象图 98

6.1.4 序列图 102

6.1.5 状态图 103

6.1.6 活动图 103

6.1.7 组件图 104

6.1.8 部署图 104

6.2 对象建模技术 105

6.2.1 功能模型 106

6.2.2 对象模型 106

6.2.3 动态模型 106

6.3 面向对象分析 107

6.3.1 原则 107

6.3.2 阶段 108

6.3.3 目标 109

6.3.4 步骤 109

6.3.5 优点 110

6.4 面向对象设计 110

6.4.1 概念 110

6.4.2 原则 111

6.4.3 任务 111

6.4.4 阶段 112

6.4.5 过程和步骤 112

6.5 小结 114

6.6 练习 114

第7章 类:抽象与封装 115

7.1 声明类 115

7.2 类的成员 116

7.2.1 数据成员 116

7.2.2 函数成员 117

7.3 访问修饰符 118

7.3.1 类的成员的访问修饰符 118

7.3.2 类的访问修饰符 119

7.4 创建对象 120

7.5 静态成员与实例成员 122

7.6 构造函数与析构函数 124

7.6.1 构造函数 124

7.6.2 析构函数 129

7.7 只读字段 131

7.8 关键字this 132

7.8.1 this访问 132

7.8.2 this用于构造函数声明 132

7.9 属性与索引器 133

7.9.1 属性 133

7.9.2 索引器 136

7.10 命名空间 139

7.10.1 编译单元与命名空间 139

7.10.2 完全限定名 140

7.10.3 using指令 141

7.11 内部类 145

7.12 分部类 147

7.13 小结 149

7.14 练习 150

第8章 方法 151

8.1 声明方法 151

8.2 静态方法与实例方法 154

8.3 方法参数 156

8.3.1 值参数 157

8.3.2 引用参数 158

8.3.3 输出参数 158

8.3.4 参数数组 160

8.3.5 数组参数 161

8.4 方法重载 163

8.5 Main方法 170

8.6 递归 172

8.7 综合示例:自动取款机模拟程序 175

8.7.1 需求 175

8.7.2 分析 175

8.7.3 设计 180

8.7.4 实现 180

8.8 小结 189

8.9 练习 189

第9章 继承与多态 190

9.1 继承 190

9.1.1 定义类的层次结构和基类 190

9.1.2 声明继承 191

9.1.3 C#的继承原则 193

9.1.4 隐藏方法 196

9.2 多态 198

9.2.1 虚方法与重写方法 198

9.2.2 重写方法的性质 200

9.2.3 多态的魔力 203

9.3 关键字base 206

9.3.1 base访问 206

9.3.2 base用于构造函数声明 207

9.4 抽象类与抽象方法 208

9.5 密封类与密封方法 211

9.6 静态类 213

9.7 接口 214

9.7.1 声明接口 214

9.7.2 接口实现与继承 217

9.7.3 显式接口成员 220

9.7.4 接口成员访问 224

9.7.5 接口与组件编程 228

9.8 所有类型的始祖:object 229

9.9 类的转换 233

9.9.1 隐式转换 234

9.9.2 显式转换 234

9.9.3 is运算符 235

9.9.4 as运算符 236

9.10 关于修饰符的总结 237

9.11 小结 239

9.12 练习 240

第10章 异常处理 243

10.1 处理异常 243

10.1.1 System.Exception 243

10.1.2 引发异常 244

10.1.3 处理异常 245

10.2 公共异常类 250

10.3 自定义异常类 253

10.4 改进自动取款机模拟程序:增加异常处理 254

10.5 小结 255

10.6 练习 256

第11章 重载运算符 257

11.1 重载运算符的原则和语法 257

11.2 重载标准运算符 258

11.2.1 重载一元运算符 259

11.2.2 重载二元运算符 261

11.3 重载转换运算符 264

11.4 小结 265

11.5 练习 265

第12章 结构与枚举 266

12.1 结构 266

12.1.1 定义结构 266

12.1.2 结构与类 269

12.2 枚举 273

12.2.1 声明枚举 273

12.2.2 枚举转换 275

12.3 小结 278

12.4 练习 278

第13章 集合 280

13.1 集合与接口 280

13.2 数组的高级功能 282

13.2.1 数组的方法和属性 282

13.2.2 CreateInstance方法 286

13.2.3 数组转换 288

13.3 常用的集合类 289

13.3.1 ArrayList 289

13.3.2 Hashtable 292

13.3.3 Queue 296

13.3.4 SortedList 297

13.3.5 Stack 299

13.4 foreach循环语句 301

13.5 自定义集合类 304

13.5.1 实现IEnumerable和IEnumerator接口 304

13.5.2 结合IEnumerable和IEnumerator接口 306

13.6 迭代器 307

13.7 改进自动取款机模拟程序:使用集合 310

13.8 小结 311

13.9 练习 311

第14章 字符串与正则表达式 312

14.1 字符串 312

14.1.1 规则字符串与逐字字符串 312

14.1.2 string与String 313

14.1.3 StringBuilder 318

14.2 正则表达式 320

14.2.1 正则表达式语言 320

14.2.2 正则表达式类 328

14.2.3 拆分字符串 332

14.24 查询字符串 334

14.2.5 替换字符串 335

14.3 小结 335

14.4 练习 335

第15章 委托与事件 336

15.1 委托 336

15.1.1 声明委托 336

15.1.2 使用委托 339

15.1.3 匿名方法 343

15.2 事件 345

15.2.1 声明事件 345

15.2.2 使用事件 346

15.2.3 访问器形式的事件 350

15.2.4 在接口中声明事件 352

15.3 小结 353

15.4 练习 353

第16章 泛型 355

16.1 泛型的概念 355

16.2 声明泛型 357

16.2.1 泛型类 357

16.2.2 泛型接口 361

16.2.3 泛型委托 362

16.2.4 泛型方法 362

16.3 约束 363

16.4 使用泛型集合类 367

16.5 定义泛型集合类 372

16.6 泛型迭代器 374

16.7 改进自动取款机模拟程序:使用泛型集合 375

16.8 小结 376

16.9 练习 376

第3部分 使用.NET框架类库 378

第17章 文件操作 378

17.1 管理文件系统 378

17.1.1 File和FileInfo 379

17.1.2 Directory和DirectoryInfo 388

17.1.3 Path 391

17.1.4 Environment 394

17.2 基于流的文件操作 397

17.2.1 FileStream 399

17.2.2 文本文件 403

17.2.3 二进制文件 407

17.3 XML文件操作 410

17.3.1 XML基础 410

17.3.2 基于流的XML文件操作 415

17.3.3 基于DOM的XML文件操作 423

17.4 改进自动取款机模拟程序:增加数据存储功能 432

17.5 小结 437

17.6 练习 437

第18章 特性、反射与程序集 438

18.1 特性 438

18.1.1 使用预定义特性 439

18.1.2 自定义特性 440

18.2 程序集 446

18.2.1 创建程序集与动态链接到程序集 447

18.2.2 元数据与清单 451

18.2.3 强名称与共享 453

18.2.4 版本控制 458

18.2.5 程序集与应用程序域 460

18.3 反射 462

18.3.1 Type类与获取类型信息 463

18.3.2 获取程序集元数据 469

18.3.3 动态加载类型 472

18.3.4 插件编程技术 474

18.3.5 通过反射生成动态代码 479

18.4 自动内存管理与非确定性销毁 481

18.4.1 自动内存管理 481

18.4.2 非确定性销毁 484

18.4.3 IDisposable接口 486

18.4.4 using语句 490

18.5 小结 491

18.6 练习 491

第19章 多线程 492

19.1 多线程基础 492

19.2 线程操作 495

19.2.1 创建线程 495

19.2.2 线程优先级 502

19.2.3 阻塞和中断线程 504

19.2.4 终止线程 505

19.2.5 线程状态 507

19.3 线程同步 511

19.3.1 使用Interlocked 514

19.3.2 使用Monitor和lock 517

19.3.3 使用Mutex 522

19.3.4 死锁和竞争条件 525

19.4 线程池 529

19.5 异步调用 531

19.6 小结 538

19.7 练习 538

第20章 Windows窗体编程 539

20.1 窗体基础 539

20.1.1 窗体与窗体设计器 539

20.1.2 编写窗体版的“Hello World!”程序 541

20.2 创建和使用窗体 546

20.2.1 创建窗体 547

20.2.2 定制窗体 550

20.2.3 处理事件 553

20.3 使用控件和组件 555

20.3.1 在窗体上放置控件和组件 557

20.3.2 控件的Anchor属性与Dock属性 559

20.3.3 Label 561

20.3.4 TextBox 561

20.3.5 Button 564

20.3.6 CheckBox、RadioButton和GroupBox 566

20.3.7 ListBox和ComboBox 569

20.3.8 ProgressBar和BackgroundWorker 572

20.3.9 ListView 575

20.3.10 TreeView 581

20.4 使用菜单 585

20.4.1 主菜单 585

20.4.2 上下文菜单 595

20.5 对话框 597

20.5.1 自定义对话框 598

20.5.2 通用对话框 602

20.6 容器 605

20.6.1 Panel和SpliContainer 605

20.6.2 TabControl 608

20.7 工具条 611

20.8 多文档界面窗体 615

20.9 用户界面与多线程 621

20.10 小结 624

20.11 练习 625

第21章 GDI+图形图像编程 626

21.1 GDI+与Graphics类 626

21.1.1 GDI+概述 626

21.1.2 Graphics 627

21.1.3 坐标系 628

21.1.4 Paint事件 629

21.2 图形操作 630

21.2.1 图形的基本概念 630

21.2.2 绘图工具 630

21.2.3 绘图 634

21.3 字体和文本 643

21.3.1 字体 643

21.3.2 绘制文本 645

21.4 路径与区域 651

21.4.1 路径 651

21.4.2 区域 653

21.5 图像操作 656

21.5.1 位图文件 656

21.5.2 图元文件 659

21.5.3 图像显示 661

21.5.4 在图像中绘制图形、图像和文本 667

21.6 变换 667

21.6.1 坐标变换 667

21.6.2 颜色变换 669

21.6.3 重新映射颜色表 677

21.7 打印 678

21.8 自定义控件 683

21.8.1 从Windows窗体控件派生自定义控件 684

21.8.2 从UserControl类派生自定义控件 687

21.8.3 使用自定义控件 691

21.9 综合示例:Hanoi塔游戏 691

21.9.1 设计目标 692

21.9.2 界面设计 692

21.9.3 柱子与盘子 693

21.9.4 游戏控制 702

21.9.5 自动演示 705

21.9.6 手动游戏 709

21.10 小结 711

21.11 练习 712

第22章 与非托管代码的互操作编程 713

22.1 托管代码与非托管代码 713

22.2 在托管代码中使用动态链接库中的非托管函数 714

22.2.1 DllImport特性 716

22.2.2 数据封送 719

22.2.3 回调函数 723

22.3 在托管代码中使用COM组件 724

22.3.1 编写COM组件 724

22.3.2 生成COM组件的Interop程序集 726

22.3.3 使用COM组件对象 729

22.3.4 COM组件的晚绑定 730

22.3.5 在托管代码中使用ActiveX控件 732

22.4 在非托管代码中使用.NET组件 734

22.4.1 供非托管代码使用的程序集的编码规范 734

22.4.2 生成强名称程序集、注册程序集和导出类型库文件 738

22.4.3 在非托管代码中使用程序集 741

22.5 不安全代码 744

22.5.1 unsafe修饰符 745

22.5.2 指针 746

22.5.3 fixed语句 749

22.5.4 不安全代码的应用示例 750

22.6 小结 752

22.7 练习 752

附录A C#关键字 753

附录B C#编程风格 754