第1章 C#基础概要 1
1.1NETFramework与 C#应用程序设计 1
1.2 类库 2
1.3 C#程序语言 3
1.3.1 第一个C#应用程序 3
1.3.2程序解析 4
1.4命名空间 6
1.5.1范例及其解析 7
1.5主控台应用程序 7
1.5.2关于变量 9
1.6窗口应用程序 9
1.7本章小结 10
第2章 C#语言基础 11
2.1 类型 11
2.1.1数值类型 11
2.1.2 内置引用类型 15
2.2使用变量 16
2.2.1变量声明与指定 16
2.2.2变量生命期 18
2.3常数 19
2.4枚举类型 21
2.5语句 23
2.5.1 选择语句 23
2.5.2 switch语句 25
2.5.3循环语句 29
2.5.4跳转语句 32
2.6运算符 33
2.6.2算术运算符 34
2.6.1赋值运算符(=) 34
2.6.3 递增递减运算符 35
2.6.4关系运算符 37
2.6.5 逻辑运算符 38
2.6.6条件式逻辑运算符 38
2.6.7一元以及多元运算符 39
2.6.8运算符优先顺序 40
2.7本章小结 42
3.1 类 44
3.1.1 定义类 44
第3章 类与方法 44
3.1.2类实例与成员引用 45
3.1.3类的存取控制 48
3.2方法成员 48
3.2.1 方法 48
3.2.2方法返回值 51
3.2.3存取修饰符 53
3.2.4参数传递 54
3.2.5静态成员 59
3.2.6嵌套类 61
3.2.7方法重载 64
3.3构造函数与析构函数 66
3.3.1构造函数 66
3.3.2析构函数 69
3.4使用this关键字 69
3.5索引器 71
3.6属性成员 78
3.7递归 82
3.8本章小结 84
4.1 关于对象 85
第4章 面向对象程序设计 85
4.2.1实现继承 86
4.2继承:重复使用程序代码 86
4.2.2 Object类 92
4.3继承结构里的类成员 94
4.3.1类继承的方法存取限制 95
4.3.2 法重写 95
4.3.3使用base 与 new关键字 99
4.3.4使用new创建新方法 102
4.3.5构造函数的继承 105
4.3.7抽象类 107
4.3.6密封类 107
4.4接口 112
4.4.1 定义与使用接口 113
4.4.2继承多个接口 119
4.4.3避免方法的存取冲突 122
4.5结构 124
4.6本章小结 129
第5章 运算符重载 130
5.1算术运算符重载 130
5.1.1 Operator关键字 131
5.1.2处理不同类型运算 138
5.2 逻辑运算符重载 141
5.3重载关系运算符 146
5.4转换运算符 155
5.5本章小结 160
第6章 数组与矩阵 161
6.1 数组 161
6.1.1一维数组 162
6.1.3存取数组对象以及数组初始化 164
6.1.2 System.Array类 164
6.1.4使用foreach 168
6.1.5操作数组元素 169
6.2 多维数组 172
6.2.1矩形数组 172
6.2.2锯齿形数组 174
6.3矩阵相乘 176
6.4魔术矩阵 180
6.5本章小结 185
7.1 集合 186
第7章 集合 186
7.2 ICollection接口 187
7.3 IList接口与实现类 187
7.4 ArrayList类 188
7.4.1使用动态数组 188
7.4.2 Sort方法与IComparable接口 192
7.5 IComparable接口 195
7.6实现枚举接口 198
7.7 堆栈与队列 202
7.7.1 堆栈与Stack类 202
7.7.2队列与Queue类 206
7.8 IDictionary接口与字典 209
7.9散列与Hashtable类 209
7.10字典枚举器 212
7.11 二元搜索与SortedList类 214
7.12 BitArray类 217
7.13本章小结 220
第8章 文字处理 221
8.1字符串类 221
8.1.1认识字符串 221
8.1.3字符串比较与运算符 223
8.1.2 String类属性成员 223
8.1.4分割字符串与获取子字符串 226
8.1.5字符删除、插入与大小写转换 228
8.1.6合并字符串 231
8.2 动态字符串与StringBuilder类 232
8.3 正则表达式 234
8.3.1 正则表达式语法 235
8.3.2使用正则表达式 236
8.3.3使用正则表达式类 245
8.4.1 格式化 250
8.4格式化字符串 250
8.4.2 自定义数字格式 252
8.4.3 日期时间格式化 254
8.4.4 ToString方法 258
8.5本章小结 259
第9章 异常处理 260
9.1 关于程序错误以及异常处理 260
9.1.1捕捉程序的异常错误 260
9.1.2使用try…catch块 262
9.1.3异常类(Exception) 264
9.1.4精确捕捉异常 269
9.1.5使用finally 273
9.1.6嵌套try语句块 274
9.1.7 自行抛出异常——throw语句 277
9.1.8自定义异常类 281
9.2查看异常类 284
9.3本章小结 286
第10章 事件与委派 288
10.1关于事件 288
10.2.1 委派类型 289
10.2事件与委派 289
10.3 事件处理 296
10.3.1事件处理器 297
10.3.2 EventArgs类型自变量 299
10.4内置的委派类型——事件处理器 304
10.5多重传送委派 307
10.6多重传送事件 310
10.7本章小结 314
11.1 IO类概述 315
第11章 文件输入/输出(I/O)与数据流 315
11.2文件目录操作 316
11.2.1操作目录 316
11.2.2操作文件 320
11.3 流 327
11.3.1读写字节数据 327
11.3.2内存数据流——MemoryStream类 330
11.3.3 文件流——FileStream类 333
11.3.4提升数据读写性能——使用缓冲流 335
11.4字符数据读写 338
11.5随机存取 343
11.6异步I/O 344
11.7隔离存储 346
11.8本章小结 352
第12章 多线程设计 353
12.1线程与进程 353
12.2应用线程 354
12.2.1创建线程 354
12.2.2线程的暂停与恢复 358
12.2.3暂停线程——使用Sleep与Join方法 361
12.3线程状态 366
12.3.1判断线程的结束 366
12.3.2取得线程状态 368
12.4同步线程 369
12.5 Monitor类 372
12.6终止线程 378
12.7线程管理——Thread Pool类 380
12.9本章小结 384
12.8死锁 384
第13章 窗口应用程序(Ⅰ) 385
13.1创建窗体 385
13.1.1 使用Visual Studio.NET创建窗口应用程序 386
13.1.2窗体应用程序 389
13.2窗体与事件 394
13.2.1键盘事件 395
13.2.2 鼠标事件 399
13.2.3 Paint事件 403
13.3消息框 404
13.4.1控件类 408
13.4控件 408
13.4.2使用Windows控件 411
13.4.3按钮、标签与文本框 413
13.4.4 CheckBox、RadioButton与GroupBoxes 421
13.4.5 ListBox与ComboBox 422
13.4.6微调器控件 431
13.5本章小结 433
14.1.2创建Menu 434
14.1.1 菜单控件 434
14.1高级控件 434
第14章 窗口应用程序(Ⅱ) 434
14.1.3 TreeView控件 443
14.1.4通用对话框——CommonDialog类 448
14.2创建多重文件接口 456
14.3实现拖动功能 462
14.4窗体信息传递 466
14.5本章小结 472
第15章 数据库应用程序与ADO.NET 473
15.1数据库基础 473
15.1.2定义数据库关联 474
15.1.1 NanCom数据库介绍 474
15.2 SQL数据库语言 475
15.2.1返回数据 476
15.2.2变动数据库 480
15.2.3关系表 482
15.3 ADO.NET对象概观 483
15.3.1 .NET Data Providers 485
15.3.2 Connection对象 486
15.3.3 Command对象 489
15.3.4使用Command对象 490
15.3.5运用DataAdapter与DataSet对象 497
15.4本章小结 507
第16章 绘图 508
16.1关于GDI+ 508
16.2绘图基础与Graphics对象 508
16.2.1使用Graphics类 509
16.2.2坐标系 511
16.2.3 Point结构数据类型 511
16.2.4 Pen类 512
16.2.5绘制曲线 512
16.2.6绘制矩形与多边形 513
16.2.7弧线、椭圆以及饼形 515
16.3文字输出 519
16.3.1 DrawString方法 519
16.3.2 Font与FontFamily 521
16.3.3 StringFormat类型对象 523
16.4绘制曲线 526
16.4.1一般曲线 526
16.4.2贝济埃曲线 532
16.5.1路径 536
16.5路径与裁剪区域 536
16.5.2转换路径 539
16.6应用画笔 542
16.6.1 SolidBrush类 542
16.6.2 HatchBrush类 544
16.6.3渐变画笔 547
16.6.4运用PathGradientBrush 552
16.7本章小结 553
17.1 组件 555
第17章 组件、属性与映射 555
17.2属性 557
17.2.1 自定义属性 557
17.2.2 AttributeUsage属性 558
17.2.3创建属性参数值与应用实现 559
17.3映射 568
17.3.1执行期类型识别 568
17.3.2查看元数据 570
17.3.3 Assembly类 575
17.3.4动态调用方法 579
17.4本章小结 581
第18章远程服务与应用程序定义域 583
18.1应用程序定义域 583
18.1.1创建应用程序定义域 584
18.1.2默认应用程序定义域 586
18.1.3加载应用程序定义域 587
18.2序列化 590
18.2.1序列化类 591
18.2.2选择性序列化对象成员 596
18.2.3 自定义序列化对象的行为——继承ISerializable接口 597
18.2.4序列化属性的继承 601
18.2.5修正无法序列化的数据——IDeserializationCallback接口 602
18.3远程服务 605
18.3.1远程服务概述 605
18.3.2创建远程对象 607
18.3.3在服务器端登录远程对象 608
18.3.4了解singlecall与singleton 610
18.3.5客户端应用程序实现 611
18.4本章小结 615
19.1 IP地址与DNS 616
第19章 网络应用程序 616
19.2 System.Net.Sockets命名空间与Socket应用程序 621
19.2.1命名空间System.Net.Sockets 621
19.2.2实现Socket应用程序要点 622
19.2.3 TCP连接应用程序 622
19.2.4创建服务器端应用程序 630
19.3网络数据流 633
19.4 Web数据流 636
19.4.1网络“要求/向应”模型 636
19.4.3 WebRequest以及WebResponse 637
19.4.2 URI与Uri类 637
19.4.4支持HTTP通信协议 641
19.4.5 WebClient类 643
19.5本章小结 646
第20章 组件应用程序 647
20.1 以组件为基础的应用程序 647
20.1.1 组件概述 647
20.1.2 Component类 648
20.1.4实现组件应用程序 649
20.1.3方法Dispose与资源释放 649
20.1.5创建组件属性 653
20.1.6容器类与站点 658
20.2可视化组件 661
20.2.1 Control类以及UserControl类 661
20.2.2继承UserControl类 662
20.2.3复合式控件 669
20.3本章小结 672
附录A NET Framework类库概观 673
A.1引用类库 673
A.2命名空间概述 675