第1篇 开发环境与C#语言基础 3
第1章 仙人指路:C#与.NET Framework简介 3
1.1 什么是.NET Framework 3
1.1.1 .NET Framework结构 3
1.1.2 .NET Framework的优点 4
1.2 什么是C 4
1.2.1 C#语言的优点 5
1.2.2 C#语言的特点 6
1.3 C#的开发工具Visual Studio 7
1.3.1 Visual Studio 2010的下载和安装 8
1.3.2 Visual Studio的特点 10
1.3.3 Visual Studio解决方案和项目文件的组织结构 11
1.4 第一个C#程序:Hello World 12
1.4.1 认识Visual Studio.NET开发环境 12
1.4.2 第一个Windows Console控制台应用程序 13
1.4.3 第一个Windows Form窗体程序 15
1.4.4 第一个ASP.NET程序 18
1.4.5 源代码简短分析 20
1.5 C#程序的特点 21
1.6 小结 22
1.7 习题 22
第2章 抛砖引玉:C#程序设计基础 24
2.1 C#中的注释 24
2.1.1 行注释和块注释 24
2.1.2 注释规范 24
2.2 变量和常量 25
2.2.1 命名变量 25
2.2.2 变量的声明和使用 25
2.2.3 常量的声明和使用 27
2.3 常用数据类型 28
2.4 自定义数据类型 30
2.4.1 认识枚举类型 30
2.4.2 枚举编程示例 31
2.4.3 认识结构类型 32
2.4.4 结构编程示例 32
2.5 类型转换 33
2.5.1 隐式转换 34
2.5.2 显式转换 35
2.6 运算符 36
2.6.1 算术运算符 36
2.6.2 字符串运算符 37
2.6.3 赋值运算符 38
2.6.4 逻辑运算符 38
2.6.5 位运算符 39
2.6.6 自增和自减运算符 40
2.6.7 其他运算符 41
2.6.8 运算符的优先级 41
2.7 流程控制 42
2.7.1 if语句 42
2.7.2 switch语句 43
2.7.3 while语句 45
2.7.4 for语句 46
2.7.5 break语句控制循环 46
2.7.6 continue语句控制循环 47
2.7.7 return语句控制循环 48
2.8 控制台输入和输出 48
2.8.1 向控制台输入 48
2.8.2 从控制台输出 49
2.9 本章知识点综合应用 49
2.9.1 C#数据类型与比较 49
2.9.2 字符类型与数字类型的转换 51
2.9.3 使用for语句 52
2.10 小结 54
2.11 习题 54
第2篇 C#面向对象编程 57
第3章 羽翼丰满:C#的面向对象 57
3.1 对象 57
3.2 类 57
3.2.1 声明类 57
3.2.2 类的属性 59
3.2.3 类的方法 60
3.2.4 创建类实例 62
3.2.5 类的构造函数 62
3.2.6 继承类 63
3.3 方法 64
3.3.1 方法的参数 64
3.3.2 使用构造函数 66
3.3.3 使用析构函数 67
3.3.4 使用静态方法 67
3.3.5 重载方法 68
3.3.6 访问父类方法 69
3.3.7 重载运算符 70
3.4 继承 71
3.5 多态 73
3.6 封装 75
3.7 命名空间 76
3.7.1 框架类库中的命名空间 76
3.7.2 命名空间的使用 77
3.8 本章知识点综合应用 78
3.8.1 类的继承 78
3.8.2 方法的改写 81
3.8.3 方法的重载 83
3.9 小结 84
3.10 习题 84
第4章 双管齐下:抽象类和接口 86
4.1 定义抽象类 86
4.2 接口 89
4.2.1 定义接口 89
4.2.2 一个类实现多个接口 92
4.2.3 实现多接口同名方法 94
4.2.4 使用is和as操作符实现接口转换 95
4.2.5 接口间的继承 96
4.3 本章知识点综合应用 98
4.3.1 显式实现接口方法 98
4.3.2 显式实现接口属性 100
4.4 小结 102
4.5 习题 103
第5章 无懈可击:调试异常与编码标准 105
5.1 调试 105
5.1.1 使用VS.NET错误报告 105
5.1.2 逻辑错误 105
5.1.3 单步执行程序 106
5.1.4 设置断点 107
5.1.5 设置断点技巧 108
5.2 Java异常 109
5.2.1 编译错误 109
5.2.2 运行错误 109
5.2.3 逻辑错误 110
5.2.4 异常处理机制 111
5.2.5 异常处理类 111
5.2.6 异常处理原则 114
5.3 异常处理语句 114
5.3.1 使用try...catch...finally语句 114
5.3.2 常见异常类型 116
5.3.3 创建和抛出自定义的异常 116
5.4 多异常的捕获 117
5.5.1 什么是多异常 117
5.5.2 异常的继承关系 120
5.5.3 捕获所有异常的方法 121
5.5 定义用户异常的方法 121
5.6 编码标准 124
5.6.1 编码结构 124
5.6.2 注释风格 125
5.6.3 命名规范 126
5.6.4 控制代码量 127
5.6.4 使用异常处理 128
5.7 本章知识点综合应用 128
5.7.1 创建自定义异常 128
5.7.2 获取异常信息 130
5.7.3 使用try...catch捕获异常 131
5.8 小结 134
5.9 习题 134
第6章 添砖加瓦:字符、字符串处理与正则表达式 136
6.1 字符Char 136
6.1.1 Char的声明及使用 136
6.1.2 转义字符 138
6.2 String类 140
6.2.1 简介 140
6.2.2 String与Char 140
6.2.3 字符串的查找 142
6.2.4 字符串的比较 143
6.2.5 字符串的获取 144
6.2.6 字符串的插入 146
6.2.7 字符串的删除 147
6.2.8 字符串的替换 148
6.3 StringBuilder类 149
6.3.1 StringBuilder的定义 149
6.3.2 字符串对象的追加 149
6.3.3 字符串的插入、删除与替换 150
6.3.4 StringBuilder与String的区别 151
6.4 正则表达式 152
6.4.1 System.Text.RegularExpression命名空间 152
6.4.2 正则表达式的语法 152
6.4.3 正则表达式验证用户输入 153
6.4.4 常用的一些正则表达式 154
6.5 本章知识点综合应用 156
6.6.1 使用正则表达式获取指定字符 156
6.6.2 通过CaptureCollection获取正则表达式的每个匹配对象信息 158
6.6.3 验证输入字符串是否是合法的电子邮件格式 160
6.6 小结 162
6.7 习题 162
第7章 兵分两路:数组与集合 164
7.1 数组的概念 164
7.1.1 什么是数组 164
7.1.2 数组的声明 164
7.1.3 数组的大小 165
7.1.4 数组的初始化 165
7.2 数组的使用 166
7.2.1 数组的遍历 166
7.2.2 获取数组的索引 167
7.2.3 数组元素清空 169
7.2.4 数组的查找 170
7.3 数组的排序 172
7.3.1 Sort方法排序 172
7.3.2 冒泡排序 174
7.4 集合 175
7.4.1 集合的概念 175
7.4.2 集合类 176
7.5 动态数组类ArrayList 177
7.5.1 ArrayList的声明 177
7.5.2 ArrayList元素的添加 177
7.5.3 ArrayList元素的删除 178
7.5.4 ArrayList元素的获取 180
7.5.5 ArrayList的遍历 181
7.5.6 ArrayList元素的查找 182
7.6 HashTable 183
7.7.1 HashTable的声明 183
7.7.2 HashTable元素的添加 184
7.7.3 HashTable元素的删除 185
7.7.4 HashTable元素的获取 187
7.7.5 HashTable的遍历 188
7.7.6 HashTable的查找 189
7.7 本章知识点综合应用 190
7.7.1 获取数组属性 190
7.7.2 数组参数的使用 193
7.7.3 操作List泛型集合 195
7.8 小结 197
7.9 习题 198
第8章 双龙出海:代理和事件 200
8.1 代理 200
8.1.1 什么是代理 200
8.1.2 代理所指向方法的类型和标识 200
8.1.3 代理引用的声明和使用 201
8.1.4 .NET Framework中的代理 204
8.1.5 代理做方法的参数 204
8.1.6 了解多重代理 206
8.1.7 多重代理的实现方法 206
8.1.8 怎样移除多重代理指向的方法 208
8.2 事件和事件处理 209
8.2.1 C#的事件处理 209
8.2.2 事件举例——时钟事件 210
8.2.3 多重事件的处理 212
8.2.4 利用事件传递数据 213
8.3 本章知识点综合应用 216
8.3.1 使用事件和代理 216
8.3.2 使用代理 218
8.4 小结 220
8.5 习题 220
第3篇 Windows程序编程 223
第9章 以逸待劳:Windows窗体应用程序 223
9.1 Windows应用程序 223
9.1.1 创建Windows应用程序 223
9.1.2 Windows窗体 224
9.1.3 解决方案管理器 225
9.2 Windows窗体控件 226
9.2.1 控件的属性 226
9.2.2 控件的事件 227
9.3 认识和使用窗体控件 227
9.3.1 按钮控件 228
9.3.2 标签控件 229
9.3.3 文本框控件 230
9.3.4 单选按钮控件 231
9.3.5 复选框控件 232
9.3.6 列表框控件 234
9.3.7 可选列表框控件 236
9.3.8 菜单 239
9.3.9 多文档界面应用程序 241
9.4 本章知识点综合应用 244
9.4.1 RequiredFieldValidator校验控件的使用 244
9.4.2 RangeValidator校验控件的使用 246
9.4.3 RegularExpressionValidator校验控件的使用 248
9.4.4 CompareValidator校验控件的使用 251
9.5 小结 254
9.6 习题 254
第10章 画龙点睛:GDI+绘制图形 256
10.1 GDI+的工作原理 256
10.1.1 Graphics对象 257
10.1.2 Pen类的用法 259
10.1.3 Font类的用法 260
10.2 GDI+画点 262
10.3 GDI+绘制曲线 263
10.4 用GDI+呈现图像 264
10.5 GDI+的用法 265
10.5.1 图像的缩放 265
10.5.2 图像的剪切 267
10.5.3 图像的旋转 268
10.5.4 图像的切换显示 269
10.6 本章知识点综合应用 269
10.6.1 窗体上绘制空心椭圆和空心矩形 270
10.6.2 使用DrawString绘制居中文本 271
10.6.3 使用DrawText绘制居中文本 272
10.6.4 使用复合模式控制Alpha混合 273
10.7 小结 274
10.8 习题 275
第4篇 C#的高级编程 279
第11章 按部就班:文件操作 279
11.1 文件操作概述 279
11.1.1 驱动器 279
11.1.2 目录 279
11.1.3 文件 280
11.1.4 文件夹 282
11.1.5 路径 283
11.2 流 284
11.2.1 操作流的类 284
11.2.2 文件流类FileStream 285
11.2.3 流写入类StreamWriter 287
11.2.4 流读取类StreamReader 288
11.2.5 二进制流写入类BinaryWriter 289
11.2.6 二进制流读取类BinaryReader 289
11.3 本章知识点综合应用 290
11.3.1 创建日志文件 290
11.3.2 对日志文件的读/写操作 292
11.3.3 复制文件 295
11.4 小结 297
11.5 习题 297
第12章 画龙点睛:可扩展标记语言XML 299
12.1 认识XML 299
12.1.1 文档对象模型的功能 300
12.1.2 用XPath查询XML文档 300
12.1.3 了解可扩展样式表语言XSL 301
12.1.4 用XML Schemas设置数据元素和属性 301
12.1.5 .NET中处理XML的相关类 302
12.2 使用XMLDOM进行编程 303
12.2.1 创建一个空的XML文档 305
12.2.2 向XML文档添加元素 306
12.2.3 更新XML文档中的元素 307
12.2.4 删除XML文档中的元素 310
12.2.5 加载和保存XML文档 311
12.3 用DataSet保存XML数据 311
12.3.1 不使用Schema文件加载XML文档 314
12.3.2 使用Schema文件加载XML文档 317
12.3.3 遍历XML文档 319
12.4 本章知识点综合应用 321
12.4.1 从XML文件中加载DataSet 321
12.4.2 从XML字符串中加载DataSet 323
12.4.3 将对象层次结构映射到XML数据 325
12.5 小结 328
12.6 习题 328
第13章 以一敌百:多线程编程 330
13.1 多线程的概念 330
13.1.1 什么是线程 330
13.1.2 单线程和多线程 330
13.2 线程的创建与控制 331
13.2.1 创建和启动线程 331
13.2.2 暂停和恢复线程 332
13.2.3 中断和终止线程 333
13.3 多线程 336
13.3.1 线程的优先级 336
13.3.2 lock关键字锁定线程 336
13.3.3 线程的同步 337
13.3.4 使用线程池 340
13.3.5 使用定时器 342
13.4 线程中的异常 344
13.5 线程安全 345
13.6 本章知识点综合应用 346
13.6.1 使用线程同步事件处理线程 346
13.6.2 同步线程的创建和使用 349
13.6.3 线程的创建与终止 351
13.7 小结 352
13.8 习题 352
第5篇 Web数据库开发 355
第14章 出奇制胜:Web网络编程应用 355
14.1 ASP.NET简介 355
14.1.1 什么是ASP.NET 355
14.1.2 IIS管理 356
14.1.3 ASP.NET特性 358
14.1.4 ASP.NET的优势 359
14.2 ASP.NET语法 360
14.2.1 剖析ASPX页面 360
14.2.2 <%%>嵌入代码 360
14.2.3 <Script>...</Script>嵌入代码 362
14.2.4 <%@Page...%>设置页面属性 364
14.2.5 <%@Import%>引入类库 364
14.2.6 使用<%--注释--%> 364
14.3 ASP.NET内置对象 365
14.3.1 Application对象保存数据 365
14.3.2 Session对象保存数据 366
14.3.3 Server对象 366
14.3.4 Request对象 367
14.3.5 Response对象 368
14.4 代码绑定 369
14.4.1 分离显示和逻辑功能 369
14.4.2 使用<%@CodeFile%>绑定代码 370
14.4.3 控件事件接收用户输入 372
14.5 本章知识点综合应用 373
14.5.1 获取Request类的相关信息 373
14.5.2 使用Response将信息输出到页面 375
14.5.3 使用Session存储信息 376
14.6 小结 378
14.7 习题 378
第15章 李代桃僵:Web程序常用控件 380
15.1 常用基本控件 380
15.1.1 文本框控件TextBox 380
15.1.2 按钮控件Button 381
15.1.3 单选按钮控件RadioButton 382
15.1.4 链接按钮控件LinkButton 383
15.1.5 下拉列表框控件DropDownList 383
15.1.6 列表框控件ListBox 385
15.1.7 复选框控件CheckBox 386
15.1.8 图像控件Image 388
15.2 数据验证控件 389
15.2.1 RequireFieldValidator控件强迫输入 389
15.2.2 CompareValidator控件验证输入 390
15.2.3 RangeValidator控件限制输入 392
15.2.4 RegularExpressionValidator控件验证输入 393
15.2.5 ValidationSummary控件显示未通过的验证 395
15.2.6 CustomValidator控件自定义验证 395
15.3 本章知识点综合应用 397
15.3.1 ComboBox控件和ListBox控件的数据绑定 397
15.3.2 RequiredFieldValidator校验控件的使用 398
15.3.3 RangeValidator校验控件的使用 400
15.4 小结 402
15.5 习题 403
第16章 直捣黄龙:ADo.NET访问数据库 405
16.1 数据库概述 405
16.1.1 数据库的组成 405
16.1.2 数据索引 405
16.1.3 数据库关系 405
16.2 常用的SQL语句 406
16.2.1 SQL的构成 406
16.2.2 select语句 407
16.2.3 delete语句 408
16.2.4 insert语句 408
16.2.5 update语句 408
16.3 ADO.NET概述 408
16.3.1 认识ADO.NET 408
16.3.2 ADO.NET的主要组件 409
16.3.3 System.Data命名空间 409
16.4 连接数据库 410
16.4.1 Connection对象 410
16.4.2 Command对象 412
16.4.3 DataReader对象 415
16.4.4 DataSet对象 417
16.4.5 DataAdapter对象 418
16.5 操作数据库 418
16.5.1 使用SqlCommand添加数据 418
16.5.2 使用SqlCommand修改数据 420
16.5.3 使用SqlCommand删除数据 421
16.5.4 使用SqlCommand查询数据 422
16.6 本章知识点综合应用 424
16.6.1 ObjectDataSource的数据绑定 424
16.6.2 SqlDataSource数据源控件的参数使用 428
16.6.3 SqlDataSource数据源控件的数据过滤 430
16.6.4 通过SqlDataSource数据源控件修改数据 432
16.7 小结 434
16.8 习题 434
第6篇 综合案例 437
第17章 抛砖引玉:在线投票系统 437
17.1 数据库设计 437
17.2 数据操作类的设计 437
17.3 创建页面 445
17.4 投票功能 447
17.5 投票统计 448
17.6 小结 451
第18章 内功心法:图书管理系统 453
18.1 普通用户模块设计 453
18.1.1 模块界面设计 453
18.1.2 数据库设计 454
18.1.3 添加相关事件代码 455
18.2 管理员模块设计 461
18.2.1 登录 461
18.2.2 公告栏 462
18.2.3 查看目录信息 463
18.2.4 读取用户留言 463
18.2.5 添加相关事件代码 465
18.3 系统启动界面设计 470
18.4 重点知识与代码 471
18.4.1 窗体间的数据通信 471
18.4.2 Panel覆盖 472
18.4.3.txt文件的操作 472
18.4.4 ADO.NET相关操作 472
18.4.5 本例完整代码 473
18.5 示例演示 484
18.6 小结 489