第1篇 编程基础篇 3
第1课 C#开发基础 3
1.1 本课学习目标 3
1.2 什么是C# 3
1.2.1 C#的推出背景 4
1.2.2 C#的特点 4
1.3 .NET Framework框架 7
1.3.1 .NET Framework简介 7
1.3.2 常见的几个概念 8
1.4 一个简单的C#程序 10
1.5 本课回顾和网络关键词 11
第2课 初识C#开发环境 13
2.1 本课学习目标 13
2.2 Visual Studio.NET基础 13
2.2.1 Visual Studio.NET工具介绍 14
2.2.2 Visual Studio.NET工具的内容 14
2.2.3 Visual Smdio.NET工具的安装 16
2.3 初步认识Visual Studio 2005开发环境 18
2.3.1 Visual Studio 2005设置 18
2.3.2 新建项目 19
2.3.3 解决方案和类视图 21
2.3.4 文本编辑器 23
2.3.5 生成与查错 26
2.4 本课回顾和网络关键词 27
第3课 变量与常量 29
3.1 本课学习目标 29
3.2 C#的基本语法 29
3.3 C#变量 32
3.3.1 C#类型 33
3.3.2 变量命名 37
3.3.3 变量的声明和赋值 38
3.4 常量 39
3.5 类型转换 39
3.5.1 隐式转换 40
3.5.2 显式转换 42
3.5.3 装箱与拆箱 44
3.6 本课回顾和网络关键词 47
第4课 复杂的变量类型和.NET框架类 49
4.1 本课学习目标 49
4.2 复杂的变量类型 49
4.2.1 枚举 49
4.2.2 结构 51
4.2.3 数组 53
4.3 基本.NET框架类 55
4.3.1 Console类 55
4.3.2 Convert类 62
4.3.3 Math类 63
4.4 本课回顾和网络关键词 64
第5课 表达式与运算符 65
5.1 本课学习目标 65
5.2 表达式 65
5.3 运算符 66
5.3.1 基本运算符 66
5.3.2 数学运算符 68
5.3.3 赋值运算符 70
5.3.4 比较运算符 71
5.3.5 逻辑运算符 72
5.3.6 移位运算符 73
5.3.7 三元运算符 73
5.3.8 运算符的优先级 75
5.4 本课回顾和网络关键词 75
第6课 C#中的流程控制语句 77
6.1 本课学习目标 77
6.2 使用语句和语句块 77
6.3 选择语句 78
6.3.1 使用if语句 78
6.3.2 使用switch语句 81
6.4 循环语句 83
6.4.1 使用while语句 84
6.4.2 使do...while语句 85
6.4.3 使用for语句 88
6.5 跳转语句 91
6.5.1 使用break语句 91
6.5.2 使用continue语句 92
6.5.3 使用retum语句 94
6.5.4 使用goto语句 96
6.6 本课回顾和网络关键词 98
第7课 面向对象编程技术 101
7.1 本课学习目标 101
7.2 面向对象编程基础 101
7.2.1 什么是OOP 102
7.2.2 面向对象的C# 102
7.3 统一建模语言 103
7.3.1 UML简介 103
7.3.2 类图和对象图 104
7.3.3 序列图和状态图 106
7.4 对象建模技术 107
7.4.1 功能模型 107
7.4.2 对象模型 108
7.4.3 动态模型 109
7.5 面向对象分析 110
7.5.1 面向对象分析的原则 110
7.5.2 面向对象分析的阶段 111
7.5.3 面向对象分析的具体目标 112
7.5.4 面向对象分析的步骤过程 113
7.6 面向对象设计 113
7.6.1 面向对象设计概述 113
7.6.2 面向对象设计的原则 114
7.6.3 面向对象设计的任务 114
7.6.4 面向对象设计的处理阶段 115
7.6.5 面向对象设计的过程和步骤 115
7.7 OPP技术的应用 116
7.8 本课回顾和网络关键词 119
第8课 方法 121
8.1 本课学习目标 121
8.2 定义和使用方法 121
8.2.1 使用方法 122
8.2.2 方法的返回值和参数 123
8.3 变量作用域 126
8.4 静态方法与实例方法 127
8.5 方法参数详解 131
8.5.1 使用值参数 131
8.5.2 使用引用参数 132
8.5.3 使用输出参数 134
8.5.4 使用参数数组 136
8.5.5 使用数组参数 137
8.6 结构方法 140
8.7 方法重载 141
8.7.1 方法重载介绍 141
8.7.2 方法重载的具体应用 143
8.8 使用方法Main 146
8.9 递归 149
8.10 本课回顾和网络关键词 150
第9课 C#类基础 153
9.1 本课学习目标 153
9.2 定义类 153
9.3 类的成员 155
9.3.1 数据成员 155
9.3.2 函数成员 155
9.4 访问修饰符 156
9.4.1 类成员访问修饰符 157
9.4.2 类的访问修饰符 159
9.5 C#对象 159
9.5.1 创建对象 159
9.5.2 使用对象 160
9.6 静态成员和实例成员 163
9.6.1 类成员概述 163
9.6.2 类成员使用实例 164
9.7 本课回顾和网络关键词 167
第10课 深入C#类 169
10.1 本课学习目标 169
10.2 使用构造函数 169
10.2.1 构造函数概述 169
10.2.2 构造函数的参数 172
10.2.3 使用私有构造函数 172
10.2.4 使用静态构造函数 173
10.3 使用析构函数 174
10.4 使用只读字段 177
10.5 使用this关键字 177
10.5.1 进行this访问 178
10.5.2 使用this关键字 178
10.6 C#属性 180
10.7 索引器 184
10.8 命名空间 186
10.8.1 C#编译单元 186
10.8.2 完全限定名标识 187
10.8.3 using指令 188
10.9 C#内部类 189
10.10 C#分部类 190
10.11 本课回顾和网络关键词 191
第11课 C#集合、数组和集合类 193
11.1 本课学习目标 193
11.2 C#集合 193
11.2.1 C#集合简介 194
11.2.2 使用集合 195
11.3 数组的高级应用 196
11.3.1 数组的方法和属性 196
11.3.2 CreateInstance方法 201
11.3.3 数组转换 205
11.4 C#集合类 207
11.4.1 ArrayList集合类 207
11.4.2 Hashtable集合类 211
11.4.3 Queue集合类 217
11.4.4 SortedList集合类 220
11.4.5 Stack集合类 223
11.5 本课回顾和网络关键词 225
第12课 foreach语句、自定义集合类和迭代器 227
12.1 本课学习目标 227
12.2 使用foreach循环语句 227
12.2.1 foreach概述 227
12.2.2 集合内使用foreach语句 228
12.3 自定义集合类 231
12.3.1 实现接口 231
12.3.2 结合实现 234
12.4 C#迭代器 237
12.4.1 迭代器概述 238
12.4.2 迭代器使用 240
12.5 本课回顾和网络关键词 243
第13课 继承与多态基础 245
13.1 本课学习目标 245
13.2 C#继承 246
13.2.1 类的层次结构 246
13.2.2 声明继承 247
13.2.3 继承规则 248
13.3 C#隐藏 250
13.4 C#多态 252
13.4.1 虚方法和虚方法重写 252
13.4.2 重写方法的特点 255
13.4.3 多态的应用 258
13.5 使用base 262
13.5.1 base访问 262
13.5.2 base构造函数指定 264
13.6 抽象类和抽象方法 265
13.7 密封类和密封成员 268
13.8 C#静态类 270
13.9 本课回顾和网络关键词 273
第14课 接口和类转换 275
14.1 本课学习目标 275
14.2 C#接口 275
14.2.1 定义接口 276
14.2.2 接口的实现和继承 278
14.2.3 显式接口的成员 282
14.2.4 访问接口成员 284
14.3 C#根类object 287
14.3.1 object方法 287
14.3.2 object方法应用 288
14.3.3 Finalize()特殊应用 291
14.4 C#类转换 292
14.4.1 隐式转换 292
14.4.2 显式转换 293
14.4.3 使用is运算符 295
14.4.4 使用as运算符 297
14.5 本课回顾和网络关键词 298
第15课 字符串与正则表达式 301
15.1 本课学习目标 301
15.2 C#字符串 301
15.2.1 C#类型 301
15.2.2 string和String 302
15.2.3 StringBuilder 311
15.3 C#正则表达式 313
15.3.1 正则表达式的语言 313
15.3.2 正则表达式类 316
15.4 正则表达式的应用 321
15.4.1 分隔符分隔 321
15.4.2 字符检索处理 324
15.4.3 字符替换处理 324
15.5 本课回顾和网络关键词 325
第16课 委托与事件 327
16.1 本课学习目标 327
16.2 C#委托 327
16.2.1 声明委托 328
16.2.2 使用委托 330
16.2.3 使用委托匿名方法 336
16.3 C#事件 337
16.3.1 声明事件 338
16.3.2 使用事件的流程 339
16.3.3 访问器格式使用事件 339
16.4 本课回顾和网络关键词 344
第17课 泛型 347
17.1 本课学习目标 347
17.2 泛型概述 347
17.2.1 泛型的特点 348
17.2.2 泛型的优点 348
17.3 泛型声明 349
17.3.1 声明泛型类 349
17.3.2 泛型接口 353
17.3.3 泛型委托 354
17.3.4 泛型方法 354
17.4 泛型约束 355
17.5 泛型集合类 360
17.5.1 泛型集合类介绍 360
17.5.2 泛型集合类的使用 360
17.5.3 自定义泛型集合类 365
17.6 C#泛型迭代器 369
17.7 本课回顾和网络关键词 371
第18课 C#文件操作和流文件操作 373
18.1 本课学习目标 373
18.2 C#文件管理 373
18.2.1 使用File和FileInfo 374
18.2.2 使用Directory和DirectoryInfo 382
18.2.3 使用Path 387
18.2.4 使用Environment 390
18.3 C#流文件管理 395
18.3.1 使用FileStream 396
18.3.2 使用StreamReader和StreamWriter 400
18.3.3 使用BinaryReader和BinaryWriter 404
18.4 本课回顾和网络关键词 407
第19课 XML文件操作处理 409
19.1 本课学习目标 409
19.2 XML文件处理 409
19.2.1 XML简介 409
19.2.2 基于流的处理 411
19.2.3 基于DOM的处理 422
19.3 本课回顾和网络关键词 427
第20课 Windows窗体编程基础 429
20.1 本课学习目标 429
20.2 窗体编程基础 429
20.2.1 窗体概述 430
20.2.2 一个简单的窗体程序 431
20.3 创建和使用窗体 434
20.3.1 创建窗体 434
20.3.2 窗体设置 435
20.4 使用控件和组件 444
20.4.1 控件的属性 444
20.4.2 使用Label控件和LinkLabel控件 445
20.4.3 使用TextBox控件 447
20.4.4 使用Button控件 450
20.4.5 使用CheckBox、RadioButton和GroupBox控件 452
20.4.6 使用ListBox和ComboBox控件 457
20.4.7 使用ProgressBar和BackgroudWorker 461
20.4.8 使用ListView控件 466
20.4.9 使用TreeView控件 472
20.5 本课回顾和网络关键词 477
第21课 菜单、工具栏和对话框 479
21.1 本课学习目标 479
21.2 使用窗体菜单 479
21.2.1 主菜单实现控件介绍 480
21.2.2 使用MenuStrip控件 484
21.2.3 使用上下文菜单控件 488
21.3 工具栏应用 489
21.4 窗体对话框 494
21.4.1 自定义实现对话框 494
21.4.2 使用对话框控件 499
21.5 本课回顾和网络关键词 504
第2篇 技术提高篇 509
第22课 Web应用编程 509
22.1 本课学习目标 509
22.2 Web编程概述 509
22.3 创建一个简单的ASP.NET程序 510
22.4 ASP.NET控件 513
22.4.1 Web服务器控件 513
22.4.2 数据处理控件 516
22.4.3 其他的控件 517
22.5 状态管理 520
22.5.1 ViewState 521
22.5.2 Cookie 521
22.5.3 服务器端状态管理 523
22.6 安全性 524
22.7 ASP.NET和数据库的连接 528
22.8 用户登录验证实例 531
22.8.1 使用登录服务控件 531
22.8.2 数据库登录验证 533
22.9 本课回顾和网络关键词 544
第23课 数据库和ADO.NET操作 545
23.1 本课学习目标 545
23.2 什么是ADO.NET 545
23.2.1 数据库的简要介绍和ADO.NET的背景 546
23.2.2 ADO.NET的目的 548
23.3 ADO.NET对象 549
23.3.1 提供者对象 550
23.3.2 用户对象 550
23.3.3 System.Data命名空间 551
23.4 安装Northwind 551
23.5 使用DataReader 553
23.6 数据库连接 555
23.6.1 基本连接处理 556
23.6.2 连接的使用 556
23.6.3 事务处理 558
23.7 命令和存储过程 559
23.7.1 处理命令 559
23.7.2 存储过程 564
23.8 DataSet数据处理 566
23.8.1 数据表 566
23.8.2 数据列 567
23.8.3 数据行 568
23.8.4 DataSet数据更新 570
23.9 ADO.NET和XML 575
23.9.1 WriteXml方法 575
23.9.2 ReacXml方法 578
23.10 ADO.NET和SQL 579
23.10.1 更新操作命令 579
23.10.2 直接执行SQL命令 581
23.11 本课回顾和网络关键词 584
第24课 DataGrid和数据绑定 587
24.1 本课学习目标 587
24.2 Visual Studio 2005实现数据库项目 587
24.2.1 Visual Studio 2005建立数据库连接 588
24.2.2 Visual Studio 2005建立数据源 589
24.3 DataGrid控件 591
24.3.1 DataGrid基础 591
24.3.2 使用DataGridView 594
24.4 数据绑定 600
24.4.1 单一绑定 600
24.4.2 数据绑定对象 600
24.5 本课回顾和网络关键词 608
第25课 GDI+图形图像编程 609
25.1 本课学习目标 609
25.2 GDI+初步 609
25.2.1 GDI+基础 610
25.2.2 Graphics类 610
25.3 图形操作 611
25.3.1 绘图工具 611
25.3.2 绘图操作 613
25.3.3 颜色混合 615
25.4 测量坐标和区域 618
25.4.1 Point和PointF 618
25.4.2 Size和SizeF 619
25.4.3 Rectangle和RectangleF 620
25.5 字体和文本 621
25.5.1 字体处理 621
25.5.2 文本处理 623
25.6 颜色操作 627
25.6.1 红绿蓝值 628
25.6.2 命名的颜色 628
25.6.3 显示模式和安全调色板 629
25.7 图像操作 630
25.7.1 位图文件简介 630
25.7.2 矢量文件简介 631
25.7.3 GDI+图像处理 633
25.8 打印操作 639
25.9 本课回顾和网络关键词 644
第26课 C#非托管代码操作 647
26.1 本课学习目标 647
26.2 托管代码和非托管代码 647
26.2.1 托管代码和非托管代码简介 648
26.2.2 两者的区别 648
26.3 在托管代码中使用动态链接库中的非托管函数 649
26.3.1 DllImport特性 651
26.3.2 数据封送处理 657
26.3.3 回调函数 667
26.4 在托管代码中使用COM组件 672
26.4.1 COM组件介绍 672
26.4.2 使用COM组件 673
26.5 在托管代码中使用ActiveX控件 680
26.6 在非托管代码中使用.NET组件 684
26.6.1 非托管代码使用程序集的编码规范 685
26.6.2 生成、注册程序集和导出类型库文件 689
26.6.3 在非托管代码中使用程序集 691
26.7 不安全代码处理 691
26.7.1 修饰符 692
26.7.2 指针 693
26.7.3 fixed语句 698
26.8 本课回顾和网络关键词 699
第27课 水晶报表应用 701
27.1 新建报表程序 701
27.2 单独添加Crystal Reports程序 704
27.3 在报表中使用Excel文件 707
27.4 在报表中使用图片 709
第28课 DotNetBar控件应用 713
28.1 DotNetBar控件简介 713
28.2 DotNetBar安装 713
28.3 创建Office 2007样式程序 715
28.4 实现Office 2007提示样式 717
28.5 实现Outlook导航样式 718
28.6 实现气泡提示样式 722
第29课 Microsoft Enterprise Library应用 723
29.1 Microsoft Enterprise Library介绍 723
29.2 安装Microsoft Enterprise Library 724
29.3 使用数据库访问模块 726
29.4 使用配置模块 729
29.5 使用异常处理模块 731
29.6 使用日志模块 734
29.7 使用缓存模块 736
第30课 水晶报表应用 739
30.1 安装Dundas 739
30.2 创建简单的平面图 741
30.3 创建条形图 744
30.4 创建柱形图 746
30.5 创建环形图 748
30.6 创建饼形图 750
30.7 创建折线图 751
30.8 创建曲线图 753
第31课 应用MapXtreme地图控件 757
31.1 安装MapXtreme控件 757
31.2 窗体显示地图 759
31.3 地图缩放处理 760
31.4 地图移动处理 762
第3篇 综合应用篇 767
第32课 项目开发案例:俄罗斯方块游戏开发 767
32.1 系统概述与预览 767
32.1.1 游戏的运作过程 767
32.1.2 项目文件概述 768
32.1.3 实例项目概览 768
32.2 系统窗体界面实现 769
32.2.1 制作游戏窗体 769
32.2.2 窗体元素设置文件 772
32.3 事件处理程序 777
32.3.1 初始设置 777
32.3.2 编写事件处理代码 778
32.4 游戏控制、处理方法 780
32.4.1 初始设置 780
32.4.2 重新开始处理 781
32.4.3 Review()处理 782
32.4.4 载入处理 783
32.4.5 绘制方块处理 785
32.4.6 游戏过程处理 787
第33课 项目开发案例:在线留言本 797
33.1 在线留言本介绍 797
33.1.1 在线留言本模块功能原理 797
33.1.2 在线留言本系统构成模块 798
33.2 在线留言本模块实例概述 798
33.3 系统配置文件实现 799
33.4 搭建系统数据库 800
33.4.1 数据库设计 800
33.4.2 数据库访问层设计 801
33.5 设置皮肤文件 808
33.5.1 设置按钮元素样式 808
33.5.2 设置页面元素样式 809
33.6 留言数据显示模块 810
33.6.1 留言列表显示页面 810
33.6.2 留言展开回复模块 815
33.7 留言分页列表显示模块 817
33.7.1 留言分页显示页面 818
33.7.2 分页处理页面 819
33.8 留言回复模块 820
33.8.1 留言回复表单页面 820
33.8.2 回复数据处理页面 822
33.9 留言发布模块 824
33.10 留言管理模块 826
33.10.1 留言管理列表页面 826
33.10.2 留言删除处理页面 828