第1章 简单的C#程序 1
1.1 C#语言简介 1
1.1.1 C#的产生与发展 1
1.1.2 C#的环境——Microsoft.NET 2
1.1.3 C#的特点 4
1.1.4 C#与C,C++的比较 6
1.1.5 C#与Java的比较 7
1.2 简单的C#程序及其构成 8
1.2.1 简单的控制台程序 8
1.2.2 简单的窗口应用程序 9
1.2.3 C#程序的基本构成 11
1.2.4 特定成分简介 13
1.2.5 较完整的C#程序 16
1.3 C#开发工具及开发步骤 17
1.3.1 .NETFrameworkSDK 17
1.3.2 程序的编辑、编译与运行 19
1.3.3 辅助工具EditPlus 24
1.3.4 集成工具SharpDevelop 26
1.3.5 用Visual Studio.NET编写控制台应用程序 28
1.3.6 用Visual Studio.NET编写Windows应用程序 30
1.4 C#程序中的基本输入与输出 39
1.4.1 字符界面的输入与输出 40
1.4.2 图形界面的输入与输出 42
1.5 面向对象程序设计的基本概念 43
1.5.1 面向对象概述 43
1.5.2 对象、类与实体 44
1.5.3 封装、继承与多态 46
1.5.4 面向对象的软件开发过程 47
第2章 数据运算、流控制与数组 49
2.1 数据类型、变量与常量 49
2.1.1 数据类型 49
2.1.2 标识符与关键字 51
2.1.3 字面常量 52
2.1.4 变量 53
2.1.5 C#编码惯例与注释 54
2.2 运算符与表达式 58
2.2.1 算术运算符 58
2.2.2 关系运算符 60
2.2.3 逻辑运算符 60
2.2.4 位运算符 61
2.2.5 赋值与强制类型转换 62
2.2.6 条件运算符 63
2.2.7 运算的优先级与结合性 63
2.3 流程控制语句 64
2.3.1 结构化程设计的三种基本流程 64
2.3.2 简单语句 64
2.3.3 分支语句 65
2.3.4 循环语句 74
2.3.5 跳转语句 82
2.4 数组 84
2.4.1 数组的声明 84
2.4.2 数组的初始化 86
2.4.3 数组元素的使用 87
2.4.4 数组与System.Array 88
2.4.5 使用foreach语句访问数组 89
2.4.6 数组程序举例 90
第3章 类、接口与结构 94
3.1 类、域与方法 94
3.1.1 定义类中的域和方法 94
3.1.2 构造方法与析构方法 96
3.1.3 对象的创建与使用 97
3.1.4 方法的重载 98
3.1.5 使用this关键字 100
3.2 属性与索引 102
3.2.1 属性 102
3.2.2 索引 106
3.3 类的继承 110
3.3.1 派生子类 111
3.3.2 域的继承、添加与隐藏 111
3.3.3 方法的继承、添加与覆盖 112
3.3.4 使用base关键字 114
3.3.5 父类与子类的转换及as运算符 115
3.3.6 属性、索引的继承 118
3.4 修饰符 118
3.4.1 访问控制符 118
3.4.2 static 124
3.4.3 const与readonly 126
3.4.4 sealed与abstract 128
3.4.5 new,virtual与override 130
3.4.6 一个应用模型——单子 134
3.5 接口 135
3.5.1 接口的概念 135
3.5.2 定义接口 136
3.5.3 实现接口 137
3.5.4 对接口的引用 140
3.5.5 显式接口成员实现 141
3.6.1 结构 143
3.6 结构与枚举 143
3.6.2 枚举 145
第4章 深入理解C#语言 149
4.1 类型与转换 149
4.1.1 值类型与引用类型 149
4.1.2 值类型的转换 152
4.1.3 引用类型的转换 153
4.1.4 装箱与拆箱 156
4.2.1 域变量与局部变量 159
4.2 变量及其传递 159
4.2.2 按值传递的参数 160
4.2.3 ref参数与out参数 162
4.2.4 params参数 166
4.2.5 变量的返回 167
4.3 多态与虚方法调用 168
4.3.1 上溯造型 168
4.3.2 虚方法调用 169
4.4.1 typeof与GetType 173
4.4 动态类型确定 173
4.4.2 is运算符 176
4.4.3 反射及动态类型创建 178
4.4.4 ==及!=运算符 179
4.5 对象构造与析构 181
4.5.1 调用本类或父类的构造方法 181
4.5.2 构造方法的执行过程 184
4.5.3 静态构造方法 188
4.5.4 析构方法与垃圾回收 189
4.5.5 显式资源管理与IDisposable接口 190
第5章 C#高级特性 194
5.1 名字空间、嵌套类型与程序集 194
5.1.1 名字空间 194
5.1.2 嵌套类型 197
5.1.3 程序集 202
5.2 指代与事件 206
5.2.1 指代 206
5.2.2 事件 215
5.3 操作符重载 219
5.3.1 操作符重载的概念 219
5.3.2 一元操作符 220
5.3.3 二元操作符 222
5.3.4 转换操作符 224
5.4 异常处理 225
5.4.1 异常的概念 225
5.4.2 捕获和处理异常 227
5.4.3 创建用户自定义异常类 231
5.4.4 重抛异常与异常链接 233
5.4.5 算术溢出及其检查 235
5.5 Attribute 237
5.5.1 使用系统定义的Attribute 237
5.5.2 自定义Attribute 240
5.6 C#语言中的其他成分 244
5.6.1 编译预处理 244
5.6.2 unsafe及指针 246
5.6.4 C#语法小结 249
5.6.3 其他关键字 249
第6章 基础类及常用算法 251
6.1 C#语言基础类 251
6.1.1 .NETFramework基础类库 251
6.1.2 Object类 252
6.1.3 简单数据类型及转换 257
6.1.4 Math类与Random类 258
6.1.5 DateTime类与TimeSpan类 259
6.2.1 String类 262
6.1.6 Console类 262
6.2 字符串 262
6.2.2 StringBuilder类 264
6.2.3 数据的格式化 266
6.3 集合类 267
6.3.1 ICollection接口及元素的遍历 268
6.3.2 IList接口与ArrayList类 269
6.3.3 IDictionary接口与Hashtable类 271
6.3.4 SortedList类 274
6.3.5 Stack类 275
6.3.6 Queue类 276
6.3.7 其他集合类 277
6.4 排序与查找 279
6.4.1 IComparable接口与IComparer接口 279
6.4.2 使用Array类进行排序与查找 280
6.4.3 集合类中的排序与查找 281
6.4.4 冒泡排序 284
6.4.5 选择排序 285
6.4.6 快速排序 286
6.5 遍试、迭代与递归 288
6.5.1 遍试 288
6.5.2 迭代 290
6.5.3 递归 294
第7章 流、文件及基于文本的应用 299
7.1 流及二进制输入与输出 299
7.1.1 流 299
7.1.2 使用流进行二进制输入与输出 303
7.2.1 TextWriter类和TextReader类 306
7.2 文本的输入与输出 306
7.2.2 标准输入与输出 309
7.2.3 应用举例 309
7.3 文件与目录 311
7.3.1 文件管理与目录管理 311
7.3.2 监控文件和目录的改动 317
7.4 文本与正则表达式 320
7.4.1 文本名字空间 320
7.4.2 正则表达式 321
7.5 运行环境与事件日志 326
7.5.1 命令行参数 326
7.5.2 获得环境参数 328
7.5.3 程序的追踪 329
7.5.4 使用事件日志 332
8.1 Windows窗体应用程序概述 336
8.1.1 Windows图形用户界面 336
第8章 Windows窗体及控件 336
8.1.2 创建Windows窗体 337
8.1.3 添加控件 341
8.1.4 设定布局 344
8.1.5 事件处理 348
8.2 常用控件 352
8.2.1 Control类 352
8.2.2 标签与按钮 354
8.2.3 文本框 358
8.2.4 列表框与UpDown控件 362
8.2.5 滚动条与进度条 367
8.2.6 定时器、时间与日历类 368
8.2.7 图片框 371
8.2.8 其他控件 372
8.3 部分容器类控件 374
8.3.1 Panel控件 374
8.3.2 ImageList控件 375
8.3.3 TreeView控件 376
8.3.4 ListView控件 378
8.3.5 TabControl控件 382
8.3.6 使用Spliter控件 383
8.4 窗体与对话框 383
8.4.1 Form类 383
8.4.2 窗体的创建 385
8.4.3 使用窗体作为对话框 386
8.4.4 通用对话框 388
8.4.5 显示消息框 390
8.5 MDI窗体、菜单与工具栏 392
8.5.1 MDI窗体 392
8.5.2 菜单 393
8.5.3 使用主菜单和上下文菜单 394
8.5.4 工具栏 395
8.5.5 状态栏 396
8.5.6 综合应用 397
9.1.1 位置与范围 414
9.1 绘图基础支持类 414
第9章 绘图与图像 414
9.1.2 颜色 416
9.1.3 画笔 418
9.1.4 刷子 421
9.2 绘图 424
9.2.1 Graphics类 424
9.2.2 获得Graphics对象 426
9.2.3 绘图的一般步骤 427
9.2.4 坐标变换 429
9.2.5 处理重绘和无效操作 434
9.3 字体 434
9.3.1 Font类 434
9.3.2 使用字体来绘制文本 435
9.4 图像 438
9.4.1 与图像相关的类 438
9.4.2 在窗体上显示图像 440
9.4.3 窗体、图片框上的图标及图像 442
9.5.1 自定义控件 444
9.5 在自定义控件中使用绘图 444
9.5.2 在自定义控件中使用绘图 447
第10章 C#的高级应用 451
10.1 多线程编程 451
10.1.1 多线程的相关概念 451
10.1.2 线程的创建与控制 452
10.1.3 线程的同步 458
10.1.4 集合的线程安全性 463
10.1.5 其他实现线程的方式 464
10.2 ADO.NET数据库编程 467
10.2.1 ADO.NET简介 467
10.2.2 数据集 468
10.2.3 连接到数据源 472
10.2.4 使用DataAdapter和DataSet 473
10.2.5 使用Command和DataReader 475
10.2.6 使用数据绑定控件 476
10.3.1 ASP.NET概述 479
10.3 ASP.NET及Web编程 479
10.2.7 使用Visual Studio.NET的数据工具 479
10.3.2 Web窗体与控件 484
10.3.3 Web应用程序举例 490
10.3.4 Mobile手机上网程序 495
10.4 XML及Web Service编程 501
10.4.1 XML基本概念 501
10.4.2 XML编程 503
10.4.3 Web Service基本概念 509
10.4.4 Web Service的创建和调用 510
10.5 网络通信编程 515
10.5.1 使用System.Net 515
10.5.2 TcpClient与TcpListener类 517
10.5.3 E-mail编程 524
10.6 C#程序与其他程序的互操作 525
10.6.1 C#,VB.NET,JScript的互操作 525
10.6.2 在C#中使用Win32 API 527
10.6.3 在C#中使用COM和ActiveX 529
参考文献 531