第1篇 C#语言编程基础 2
第1章 Visual C# 2008概述 2
1.1 C#语言简介 2
1.1.1 C#语言与.NET Framework 2
1.1.2 C#语言与其他语言的比较 4
1.1.3 C# 3.0的新功能 5
1.2 Visual Studio 2008简介 6
1.2.1 Visual Studio 2008的新功能 6
1.2.2 安装Visual Studio 2008 7
1.2.3 选择默认环境设置 10
1.3 认识Visual Studio 2008 IDE 10
1.3.1 起始页 10
1.3.2 菜单与工具栏 11
1.3.3 解决方案资源管理器 12
1.3.4 设计器窗口 13
1.3.5 工具箱 14
1.3.6 属性窗口 14
1.3.7 代码编辑器 15
1.3.8 对象浏览器 17
1.4 创建第1个Visual C#应用程序 18
1.4.1 创建C#控制台应用程序 18
1.4.2 创建C# Windows窗体应用程序 21
1.4.3 创建C# WPF应用程序 26
1.4.4 创建ASP.NET Web应用程序 29
第2章 C#语言编程基础 32
2.1 基本语法 32
2.1.1 标识符 32
2.1.2 关键字 33
2.1.3 基本语法规则 34
2.1.4 控制台应用程序基本结构 34
2.2 数据类型 38
2.2.1 值类型 38
2.2.2 引用类型 43
2.2.3 数据类型转换 49
2.2.4 装箱与拆箱 52
2.3 变量和常量 54
2.3.1 声明和使用变量 54
2.3.2 声明和使用常量 55
2.4 运算符 56
2.4.1 算术运算符 57
2.4.2 关系运算符 58
2.4.3 逻辑运算符 59
2.4.4 位运算符 61
2.4.5 赋值运算符 62
2.4.6 其他运算符 63
2.4.7 运算符优先级 67
2.5 控制台输入/输出 68
2.5.1 屏幕缓冲区与控制台窗口 68
2.5.2 Console类的成员 68
2.5.3 控制台输入 69
2.5.4 控制台输出 73
第3章 流程控制语句 77
3.1 选择语句 77
3.1.1 if语句 77
3.1.2 switch语句 79
3.2 迭代语句 81
3.2.1 while语句 81
3.2.2 do语句 83
3.2.3 for语句 84
3.2.4 foreach语句 85
3.3 跳转语句 87
3.3.1 break语句 87
3.3.2 continue语句 88
3.3.3 goto语句 89
3.3.4 return语句 90
3.4 异常处理语句 91
3.4.1 异常处理概述 91
3.4.2 try-catch-finally语句 92
3.4.3 throw语句 95
3.5 程序调试 97
3.5.1 程序错误类型 97
3.5.2 程序调试方法 97
3.6 预处理器指令 100
3.6.1 定义符号 100
3.6.2 条件编译 100
3.6.3 报告编译错误和警告 101
3.6.4 定义代码块 102
第2篇 C#面向对象编程 105
第4章 类与对象 105
4.1 面向对象编程基本概念 105
4.1.1 类 105
4.1.2 对象 106
4.2 声明类 106
4.2.1 类声明语法 106
4.2.2 类修饰符 108
4.2.3 类成员 111
4.2.4 结构与类的区别 113
4.3 构造函数与析构函数 115
4.3.1 实例构造函数 115
4.3.2 私有构造函数 118
4.3.3 静态构造函数 119
4.3.4 析构函数 121
4.4 常量与字段 122
4.4.1 声明常量 122
4.4.2 声明字段 124
4.4.3 静态字段和实例字段 125
4.4.4 只读字段 126
4.4.5 可变字段 128
4.5 继承 129
4.5.1 类的继承 129
4.5.2 抽象类 131
4.5.3 密封类 134
4.5.4 System.Object类 135
4.5.5 可视化OOP工具 136
4.6 方法 140
4.6.1 声明方法 140
4.6.2 方法形参 141
4.6.3 方法重载 146
4.6.4 静态方法和实例方法 147
4.6.5 虚方法和重写方法 149
4.6.7 密封方法 151
4.6.8 抽象方法 152
4.6.9 外部方法 153
4.6.10 扩展方法 154
4.7 嵌套类 155
4.7.1 声明嵌套类 156
4.7.2 隐藏嵌套类 157
4.8 分部类与分部方法 159
4.8.1 分部类 159
4.8.2 分部方法 162
4.9 静态类与静态成员 164
4.9.1 静态类 165
4.9.2 静态成员 166
第5章 属性与索引器 169
5.1 属性 169
5.1.1 声明属性 169
5.1.2 属性访问器 170
5.1.3 静态属性与实例属性 174
5.1.4 属性与继承 176
5.1.5 非对称访问器 179
5.1.6 自动实现的属性 183
5.1.7 匿名类型 186
5.2 索引器 187
5.2.1 声明索引器 187
5.2.2 索引器与属性的比较 189
5.2.3 使用索引器 189
5.2.4 索引器重载 191
5.2.5 多维索引器 193
第6章 委托与事件 196
6.1 委托 196
6.1.1 委托概述 196
6.1.2 声明委托 197
6.1.3 实例化委托 198
6.1.4 调用委托 199
6.1.5 多路广播委托 200
6.1.6 通过委托实现回调 203
6.1.7 静态委托 205
6.1.8 委托中的协变和逆变 206
6.1.9 委托的异常处理 208
6.2 事件 210
6.2.1 事件概述 210
6.2.2 使用预定义事件 211
6.2.3 实现自定义事件 215
6.2.4 事件访问器 220
第7章 接口与泛型 225
7.1 接口 225
7.1.1 接口概述 225
7.1.2 声明接口 226
7.1.3 声明接口成员 227
7.1.4 访问接口成员 229
7.1.5 接口实现 231
7.1.6 显式接口实现 238
7.1.7 接口映射 242
7.1.8 接口实现继承 244
7.1.9 接口重新实现 247
7.2 泛型 250
7.2.1 泛型概述 250
7.2.2 泛型类型参数 252
7.2.3 类型参数约束 253
7.2.4 泛型类 254
7.2.5 泛型接口 257
7.2.6 泛型方法 260
7.2.7 泛型和数组 262
7.2.8 泛型委托 263
7.2.9 default关键字 265
第8章 LINQ表达式 266
8.1 LINQ查询概述 266
8.1.1 基本概念 266
8.1.2 LINQ与泛型类型 269
8.1.3 Lambda表达式 271
8.1.4 在C#中编写LINQ查询 273
8.2 使用LINQ查询子句 275
8.2.1 from子句 275
8.2.2 where子句 277
8.2.3 select子句 278
8.2.4 group子句 280
8.2.5 orderby子句 283
8.2.6 join子句 284
8.2.7 let子句 287
第9章 属性、迭代器和命名空间 289
9.1 属性 289
9.1.1 属性概述 289
9.1.2 自定义属性 290
9.1.3 应用属性 293
9.1.4 访问属性 295
9.1.5 通用属性 297
9.1.6 交互操作的属性 300
9.2 迭代器 302
9.2.1 迭代器概述 302
9.2.2 创建和使用迭代器 303
9.2.3 为泛型类创建迭代器 305
9.3 命名空间 307
9.3.1 编译单元 307
9.3.2 声明命名空间 308
9.3.3 使用命名空间 310
9.3.4 使用命名空间别名限定符 314
9.3.5 使用My命名空间 315
第10章 字符串与正则表达式 317
10.1 不变字符串 317
10.1.1 String类概述 317
10.1.2 比较字符串 319
10.1.3 检索子字符串 321
10.1.4 复制字符串 323
10.1.5 拆分字符串 324
10.1.6 连接字符串 325
10.1.7 修改字符串 326
10.1.8 转换大小写 328
10.1.9 格式化字符串 329
10.2 可变字符串 331
10.2.1 StringBuilder类概述 332
10.2.2 设置StringBuilder容量 332
10.2.3 追加操作 333
10.2.4 插入操作 336
10.2.5 删除操作 338
10.2.6 替换操作 339
10.3 字符串编码 340
10.3.1 Encoding类概述 340
10.3.2 字符串编码示例 341
10.4 正则表达式 342
10.4.1 正则表达式概述 342
10.4.2 编写正则表达式 343
10.4.3 使用Regex类 344
第11章 数组与集合 347
11.1 数组 347
11.1.1 Array类 347
11.1.2 数组概述 349
11.1.3 动态创建数组 351
11.1.4 数组排序 353
11.1.5 搜索数组 355
11.1.6 反转数组 357
11.1.7 复制数组 359
11.2 非泛型集合 360
11.2.1 System.Collections概述 360
11.2.2 ArrayList类 361
11.2.3 Queue类 364
11.2.4 Stack类 365
11.2.5 Hashtable类 367
11.2.6 SortedList类 369
11.3 泛型集合 372
11.3.1 System.Collections.Generic概述 372
11.3.2 List〈T〉类 373
11.3.3 Dictionary〈TKey,TValue〉类 376
11.3.4 SortedDictionary〈TKey,TValue〉类 378
第12章 文件输入/输出 381
12.1 文件管理 381
12.1.1 System.IO概述 381
12.1.2 文件类File 382
12.1.3 文件信息类FileInfo 385
12.2 文件读/写 388
12.2.1 文件流类FileStream 388
12.2.2 流写入类StreamWriter 392
12.2.3 流读取类StreamReader 393
12.2.4 二进制写入类BinaryWriter 395
12.2.5 二进制读取类BinaryReader 397
12.3 目录与驱动器 399
12.3.1 目录类Directory 399
12.3.2 目录信息类DirectoryInfo 401
12.3.3 路径类Path 403
12.3.4 驱动器信息类DriveInfo 404
第3篇 Windows窗体编程 407
第13章 Windows窗体与控件 407
13.1 Windows窗体 407
13.1.1 创建Windows窗体 407
13.1.2 创建Windows应用程序项目 409
13.1.3 Form类 412
13.1.4 在项目中添加窗体 414
13.1.5 窗体设计技巧 416
13.1.6 在窗体中创建事件处理程序 418
13.1.7 创建MDI窗体 421
13.2 Windows窗体控件 422
13.2.1 分类 422
13.2.2 控件的基本操作 424
13.2.3 执行操作的控件 426
13.2.4 显示信息的控件 430
13.2.5 编辑文本控件 433
13.2.6 选项设置控件 443
13.2.7 列表选择控件 447
13.2.8 日期选择控件 460
13.2.9 帮助组件 462
13.2.10 显示和存储图像的控件 466
13.2.11 容器控件 467
13.2.12 杂项控件 469
第14章 菜单、工具栏和对话框 473
14.1 主菜单 473
14.1.1 MenuStrip控件概述 473
14.1.2 创建主菜单 474
14.1.3 创建菜单项事件处理程序 477
14.1.4 创建MDI子窗口列表 481
14.2 快捷菜单 483
14.2.1 ContextMenuStrip控件概述 483
14.2.2 创建和显示快捷菜单 484
14.3 工具栏 486
14.3.1 ToolStrip控件概述 486
14.3.2 创建工具栏 488
14.4 对话框 492
14.4.1 打开和保存文件 492
14.4.2 设置字体和颜色 496
14.4.3 打印文档 498
第15章 GDI+图形编程 504
15.1 GDI+概述 504
15.1.1 GDI+的功能 504
15.1.2 System.Drawing 505
15.1.3 Graphics对象 506
15.2 使用钢笔绘图 509
15.2.1 Pen类概述 509
15.2.2 使用钢笔绘制线条和形状 510
15.3 使用画笔填充形状 515
15.3.1 使用纯色填充形状 515
15.3.2 使用阴影图案填充形状 517
15.3.3 使用图像纹理填充形状 519
15.3.4 使用渐变画笔填充形状 521
15.4 图像处理 526
15.4.1 加载和显示图像 526
15.4.2 常见图像操作 527
第16章 访问Windows窗体数据 530
16.1 使用ADO.NET对象 530
16.1.1 ADO.NET组件概述 530
16.1.2 数据库连接 531
16.1.3 数据命令 534
16.1.4 数据读取器 536
16.1.5 数据适配器 540
16.1.6 数据集 543
16.2 使用数据访问控件 549
16.2.1 数据访问控件介绍 549
16.2.2 设计基本数据窗体 552
16.2.3 设计主-详细窗体 557
第4篇 创建WPF应用程序 561
第17章 WPF应用程序与窗体 561
17.1 WPF编程入门 561
17.1.1 使用csc编译器生成WPF应用程序……56l17.1.2 用MSBuild生成WPF应用程序 563
17.1.3 使用VS创建WPF独立应用程序 567
17.1.4 使用VS创建WPF浏览器应用程序 570
17.2 管理WPF应用程序 573
17.2.1 Application类 573
17.2.2 应用程序生存期 575
17.2.3 管理属性、资源和窗口 578
17.2.4 应用程序导航 582
17.3 WPF窗口 585
17.3.1 Window类 585
17.3.2 窗口生存期 587
17.3.3 窗口的外观和行为 590
17.3.4 窗口所属权 591
第18章 XAML语言 594
18.1 XAML概述 594
18.1.1 对象元素 594
18.1.2 命名空间 595
18.1.3 x:Class属性 596
18.1.4 子元素 597
18.2 设置属性 599
18.2.1 属性语法 599
18.2.2 属性元素 600
18.2.3 附加属性 601
18.3 标记扩展 603
18.3.1 标记扩展语法 603
18.3.2 XAML标记扩展 603
18.3.3 WPF标记扩展 607
18.4 XAML子元素 613
18.4.1 子元素处理规则 613
18.4.2 内容属性 613
18.4.3 集合项 614
18.4.4 普通文本 615
18.5 加载和解析XAML 615
18.5.1 从字符串中加载XAML 615
18.5.2 从资源文件中加载XAML 617
第19章 WPF控件 620
19.1 WPF控件概述 620
19.1.1 WPF控件分类 620
19.1.2 使用WPF控件 622
19.2 布局控件 625
19.2.1 Canvas控件 625
19.2.2 DockPanel控件 626
19.2.3 Grid控件 627
19.2.4 StackPanel控件 630
19.2.5 WrapPanel控件 631
19.3 常用控件 633
19.3.1 按钮控件 633
19.3.2 用户信息控件 635
19.3.3 输入控件 638
19.3.4 选择控件 640
19.3.5 菜单控件 649
19.3.6 工具栏和状态栏控件 652
19.3.7 导航控件 654
19.3.8 数字墨迹控件 657
第20章 WPF图形、动画和媒体 660
20.1 图形 660
20.1.1 绘制基本形状 660
20.1.2 形状的拉伸和变换 666
20.1.3 使用画笔 668
20.2 动画 672
20.2.1 演示图板动画技术 672
20.2.2 From/To/By动画 673
20.2.3 关键帧动画 675
20.2.4 路径动画 677
20.3 媒体播放 680
20.3.1 媒体播放模式 680
20.3.2 播放音频 680
20.3.3 播放视频 684
第5篇 创建ASP.NET Web应用程序 687
第21章 ASP.NET Web编程基础 687
21.1 ASP.NET基础 687
21.1.1 ASP.NET概述 687
21.1.2 创建ASP.NET Web应用程序 688
21.1.3 ASP.NET网页语法 691
21.2 ASP.NET服务器控件 693
21.2.1 HTML服务器控件 694
21.2.2 Web服务器控件 698
21.2.3 验证控件 702
21.2.4 用户控件 706
21.3 ASP.NET状态管理 708
21.3.1 基于客户端的状态管理 708
21.3.2 基于服务器的状态管理 711
第22章 ASP.NET数据访问 718
22.1 数据源控件 718
22.1.1 SqlDataSource控件 718
22.1.2 AccessDataSource控件 721
22.1.3 其他数据源控件 722
22.2 GridView控件 723
22.2.1 GridView控件概述 723
22.2.2 分页显示数据 725
22.2.3 排序数据 727
22.2.4 实现主/详细页 729
22.2.5 更新数据 731
22.2.6 删除数据 735
22.3 DetailsView控件 736
22.3.1 DetailsView控件概述 737
22.3.2 分页显示数据 738
22.3.3 更新数据 740
22.4 FormView控件 742
22.4.1 FormView控件概述 743
22.4.2 创建模板 743
22.4.3 分页显示数据 744
22.4.4 更新数据 746
22.5 其他数据控件 750
22.5.1 Repeater控件 750
22.5.2 DataList控件 751
22.5.3 ListView控件 752
第23章 ASP.NET AJAX应用开发 753
23.1 ASP.NET AJAX概述 753
23.1.1 ASP.NET AJAX体系结构 753
23.1.2 用JavaScript实现AJAX功能 756
23.1.3 ASP.NET AJAX功能应用示例 759
23.2 ASP.NET AJAX服务器控件 762
23.2.1 ScriptManager控件 762
23.2.2 UpdatePanel控件 766
23.2.3 UpdateProgress控件 769
23.2.4 Timer控件 771
23.3 ASP.NET AJAX控件工具箱 774
23.3.1 安装 774
23.3.2 工具箱中的控件 777
23.3.3 RoundedCorners控件 779
23.3.4 AutoComplete控件 780
23.3.5 CascadingDropDown控件 782
23.3.6 Accordion控件 785