第1部分 C#入门 1
1.1.1 .NET Framework 2.0介绍 2
1.1 .NET Framework 2.0与C 2
第1章 C#简介 2
1.1.2 .NET Framework 2.0新增功能 3
1.1.3 Common Language Runtime 4
1.1.5 C# 2.0新增功能 6
1.1.4 C# 2.0介绍 6
1.2.1 .NET开发环境Visual Studio 7
1.2 Visual Studio 2005概述 7
1.2.2 Visual Studio 2005安装 8
1.2.3 MSDN安装 10
1.3.1 Visual Studio 2005概览 12
1.3 Visual Studio 2005开发环境 12
1.3.2 菜单栏 14
1.3.4 工具箱面板 15
1.3.3 工具栏 15
1.3.5 “属性”面板 16
1.3.8 代码编辑器 17
1.3.7 “对象浏览器”面板 17
1.3.6 “类视图”面板 17
1.4.2 目录浏览 19
1.4.1 进入MSDN 19
1.3.9 “错误列表”面板 19
1.3.10 “输出”面板 19
1.4 MSDN简介 19
1.4.3 索引快速访问 20
1.4.4 搜索MSDN文档库 21
1.5.1 命名空间简介 22
1.5 命名空间 22
1.5.2 using语句 23
1.6.1 C#中的Hello World! 24
1.6 创建第一个C#项目 24
1.5.3 命名空间的别名 24
1.7.1 窗体应用程序Hello World! 26
1.7 创建Windows窗体应用程序 26
1.6.2 实例改进 26
1.7.2 实例改进 28
1.8.1 集成开发环境软件——SharpDevelop 30
1.8 其他常用工具 30
1.8.2 轻量级的开发工具——Snippet Compiler 31
1.8.3 通用编辑器——UltraEdit 32
1.8.4 反编译软件——.NET Reflector 34
1.8.5 NUnit 36
1.8.6 代码生成工具——CodeSmith 37
1.8.7 代码标准检测工具——FxCop 39
1.8.8 其他工具 40
1.9 小结 41
2.1.1 语句的基本概念与分类 42
2.1 语句 42
第2章 C#基础元素 42
2.1.3 编程风格的通用约定 43
2.1.2 编译器对C#语句的处理 43
2.1.5 编程风格建议 44
2.1.4 代码块 44
2.2.2 标识符的大小写 47
2.2.1 标识符简介及命名 47
2.2 标识符 47
2.2.3 中文标识符 48
2.3.2 关键字的显示方式 49
2.3.1 关键字列表 49
2.3 关键字 49
2.3.3 其他语言关键字 50
2.3.4 使用关键字做标识符 52
2.4.1 变量的声明 53
2.4 变量 53
2.4.3 对变量进行赋值 54
2.4.2 变量的命名规范 54
2.4.5 类型之间的转换 55
2.4.4 变量的类型 55
2.4.6 全局变量解决方法 57
2.4.7 调试程序:如何查看变量内容 58
2.5.1 二元运算符 61
2.5 运算符 61
2.5.2 一元运算符 62
2.5.4 溢出检测 63
2.5.3 简化运算符列表 63
2.5.5 类型检测 65
2.5.6 容量检测 66
2.5.9 运算符的优先级 67
2.5.8 运算符列表 67
2.5.7 三元运算符 67
2.6.1 数学表达式 68
2.6 表达式 68
2.6.2 数学运算实例 69
2.6.3 调试程序:计算表达式 70
2.6.4 数学求解实例 72
2.7 小结 74
3.1.2 逻辑与运算符:“&” 76
3.1.1 逻辑变量 76
第3章 布尔逻辑与分支语句 76
3.1 布尔逻辑 76
3.1.3 逻辑或运算符:“|” 78
3.1.4 逻辑异或运算符:“^” 79
3.1.5 逻辑非运算符:“!” 81
3.1.6 条件逻辑与运算符:“&&” 82
3.1.7 条件逻辑或运算符:“‖” 84
3.1.8 常用比较运算符 85
3.1.9 逻辑运算符的优先级 86
3.2.1 if条件转移 87
3.2 if语句 87
3.2.2 if…else语句 88
3.2.3 嵌套if语句 90
3.2.4 if与else的匹配 92
3.2.5 调试程序:单步调试 94
3.3.1 switch条件转移 95
3.3 switch语句 95
3.3.2 使用switch进行成绩查询 96
3.3.3 case条件判断 98
3.3.4 实例:星期提示程序 99
3.4.1 非三元运算符条件判断 101
3.4 三元运算符 101
3.4.2 使用三元运算符简化程序 102
3.5 goto语句 104
3.6 小结 106
4.1.1 循环条件 107
4.1 for循环 107
第4章 循环 107
4.1.3 逆向步进 108
4.1.2 增加步进幅度 108
4.1.4 注意事项 110
4.1.6 使用for循环遍历数组 111
4.1.5 使用for循环 111
4.1.7 使用for循环对数组进行排序 112
4.2.1 while循环简介 114
4.2 while循环 114
4.1.8 调试程序:跳出循环 114
4.2.2 while循环的中断与继续 115
4.2.3 使用while循环实现简单人机交互 116
4.3.2 与while循环的比较 118
4.3.1 do循环简介 118
4.3 do循环 118
4.3.3 使用do循环实现简单密码验证 119
4.4 中止循环 121
4.5 小结 122
5.1.1 方法的引入 123
5.1 方法的定义 123
第5章 方法 123
5.1.2 方法的构成 124
5.1.3 方法的调用 125
5.1.4 方法的返回值 126
5.1.5 方法的参数 128
5.1.6 方法的注释 129
5.1.7 ref关键字 132
5.1.8 out关键字 133
5.2.1 方法中变量的作用域 135
5.2 作用域 135
5.2.2 其他代码结构中变量的作用域 137
5.3.1 参数类型重载的方法 140
5.3 方法的重载 140
5.3.2 参数引用重载的方法 142
5.3.3 参数个数重载的方法 143
5.4.1 Main方法 144
5.4 特殊方法 144
5.4.2 Main方法的参数 146
5.4.3 Main方法的注意事项 148
5.5 小结 149
6.1.2 异常类的常用属性 150
6.1.1 什么是异常 150
第6章 错误及异常处理 150
6.1 异常简介 150
6.1.3 C#中常见异常类 151
6.2.1 try…catch语句 153
6.2 捕获异常 153
6.1.4 自定义异常 153
6.2.2 异常类型变量的使用 155
6.2.3 抛出异常 157
6.2.4 finally的使用 158
6.2.5 使用Visual C# 2005的异常提示对话框 160
6.3.1 默认的异常提示 161
6.3 异常处理 161
6.3.2 创建异常抛出窗体 162
6.3.3 创建异常显示窗体 163
6.3.4 实例运行情况 166
6.4 小结 168
第2部分 C#高级内容 169
7.1.1 面向对象编程基础 170
7.1 面向对象编程技术 170
第7章 类与对象 170
7.1.3 类的形式化描述 171
7.1.2 对象和类 171
7.2.2 类的构造 173
7.2.1 定义类 173
7.2 类 173
7.2.3 类的析构 176
7.2.4 定义字段 178
7.2.5 定义属性 180
7.2.6 定义方法 183
7.2.7 常见命名规则 186
7.2.8 访问控制 187
7.2.9 类的继承 192
7.2.10 继承关系中的构造和析构 196
7.2.11 this关键字 199
7.3.1 在Visual Studio 2005中创建类 200
7.3 Visual Studio 2005成员向导 200
7.3.2 添加类成员 204
7.4 小结 207
8.1.1 什么是枚举 208
8.1 枚举 208
第8章 枚举与结构 208
8.1.3 枚举的使用 209
8.1.2 枚举的定义 209
8.1.4 实例:用枚举表示一周 210
8.2.1 结构的变量 212
8.2 结构 212
8.2.2 结构的初始化 213
8.2.3 结构的方法 215
8.2.4 结构的使用 217
8.2.5 类与结构的区别 218
8.3 小结 221
9.1.1 什么是数组 222
9.1 数组 222
第9章 数组与集合 222
9.1.3 数组的索引 223
9.1.2 数组的定义 223
9.1.4 数组的遍历 226
9.1.5 数组元素的清空 227
9.1.6 数组的查找 229
9.1.7 数组的排序 231
9.1.8 数组的使用 233
9.2.1 什么是集合 234
9.2 集合 234
9.3.1 ArrayList的构造 236
9.3 ArrayList 236
9.2.2 为什么使用集合 236
9.3.2 ArrayList元素的添加 237
9.3.3 ArrayList元素的删除 241
9.3.4 ArrayList元素的获取 244
9.3.5 ArrayList的遍历 245
9.3.6 ArrayList向Array的转换 246
9.3.7 缩减ArrayList的容量 248
9.4.1 HashTable的构造 249
9.4 HashTable 249
9.4.2 HashTable元素的特点 250
9.4.3 HashTable元素的操作 251
9.5.1 什么是Queue 256
9.5.2 Queue的构造 256
9.4.4 HashTable的优点 256
9.5 Queue 256
9.5.3 Queue的相关属性 257
9.5.4 Queue的操作 258
9.5.5 Queue与其他集合的区别 260
9.6.2 定义Stack 262
9.6.1 什么是Stack 262
9.6 Stack 262
9.6.3 Stack元素的操作 263
9.6.4 Stack元素的获取规则 266
9.7.2 SortedList元素的操作 267
9.7.1 什么是SortedList 267
9.7 SortedList 267
9.8.1 Dictionary类简介 270
9.8 Dictionary 270
9.7.3 何时使用SortedList 270
9.8.2 更改Dictionary类中的条目 271
9.8.3 更改条目的值 273
9.8.4 查找条目 274
9.8.5 遍历Dictionary 275
9.9 小结 276
10.1.1 接口的定义 277
10.1 接口 277
第10章 面向对象技术进阶 277
10.1.2 接口的继承与实现 279
10.1.3 接口与多重继承 282
10.1.4 使用接口作为参数 287
10.1.5 使用接口作为返回值 289
10.1.6 名称冲突 292
10.2.1 抽象类的定义 295
10.2 抽象类与抽象方法 295
10.2.2 抽象方法 296
10.2.3 抽象类的使用 299
10.3.1 密封类 302
10.3 密封类与密封方法 302
10.3.2 密封方法 303
10.4.1 is运算符 305
10.4 高级转换 305
10.4.2 强制转换 307
10.4.3 as运算符 309
10.5 virtual和override关键字 310
10.6 static关键字 311
10.7 小结 313
11.1.1 字段的可访问性 314
11.1 字段 314
第11章 字段与属性 314
11.1.2 常量字段 315
11.2.1 只读属性 316
11.2 属性 316
11.2.2 只写属性 318
11.2.4 属性中的代码 320
11.2.3 属性的默认值 320
11.3 小结 324
12.1.2 创建迭代器 325
12.1.1 什么是迭代器 325
第12章 迭代器和分部类 325
12.1 迭代器 325
12.1.3 foreach语句 331
12.2.1 什么是分部类 333
12.2 分部类 333
12.2.2 定义分部类 334
12.2.3 分部类的注意事项 338
12.3 小结 343
13.1.2 索引器的目的 344
13.1.1 什么是索引器 344
第13章 索引器 344
13.1 索引器 344
13.1.4 使用索引器 346
13.1.3 定义索引器 346
13.1.6 索引器与属性的比较 352
13.1.5 只读索引器 352
13.2.1 结构中的索引器 353
13.2 其他结构中的索引器 353
13.2.2 接口中的索引器 355
13.3 小结 357
14.1.1 泛型问题简述 358
14.1 泛型简介 358
第14章 泛型 358
14.1.2 泛型概述 359
14.1.3 泛型的优点 362
14.1.4 泛型实例:让程序说多种语言 364
14.2.1 应用泛型 367
14.2 泛型使用 367
14.2.2 泛型的限制 369
14.2.3 泛型接口 371
14.2.4 泛型方法 372
14.2.5 类的重载 373
14.2.6 泛型类的继承 374
14.3.1 .NET典型泛型类:List〈T〉 378
14.3 .NET中泛型的应用 378
14.3.2 泛型结构 380
14.4 小结 381
15.1.1 C#中的委托 382
15.1 委托 382
第15章 委托和事件 382
15.1.3 委托示例 383
15.1.2 委托与接口 383
15.1.4 多路委托 388
15.2.1 事件简介 390
15.2 事件 390
15.2.2 事件示例 392
15.3 小结 398
15.2.3 GUI事件 398
16.1 运算符的限制 399
第16章 运算符重载 399
16.2.2 运算规则 402
16.2.1 背景介绍 402
16.2 运算符重载 402
16.2.4 主体程序代码 404
16.2.3 运算符重载语法 404
16.2.5 定义操作数 405
16.2.6 相关属性实现 407
16.2.7 相关方法 410
16.2.8 一元运算符“-”重载 414
16.2.9 二元运算符重载:相等“==”和不等“!=” 415
16.2.10 二元运算符重载:加法“+” 416
16.2.11 二元运算符重载:减法“-” 417
16.2.12 二元运算符重载:乘法“×” 419
16.2.13 其他实现 421
16.3 小结 423
16.2.14 可重载运算符 423
第3部分 Windows窗体应用程序开发 425
17.1.1 认识窗体设计器 426
17.1 窗体设计器 426
第17章 Windows窗体应用程序 426
17.1.2 使用窗体设计器 427
17.2.1 工具箱面板 431
17.2 其他窗体 431
17.2.2 属性面板 435
17.2.3 “服务器资源管理器”面板 442
17.3.1 添加控件 445
17.3 常用控件 445
17.3.4 按钮控件Button 446
17.3.3 处理控件事件 446
17.3.2 修改控件属性 446
17.3.5 标签控件Label 449
17.3.6 文本框控件TextBox 450
17.3.7 单选按钮控件RadioButton 454
17.3.8 复选框控件CheckBox 458
17.3.9 分组框控件GroupBox 462
17.3.10 面板控件Panel 465
17.3.12 列表框控件ListBox 466
17.3.11 链接标签控件LinkLabel 466
17.3.13 可选列表框控件CheckedListBox 469
17.3.14 组合框控件ComboBox 472
17.3.15 微调按钮控件NumericUpDown 475
17.4.2 控件顺序和层次 477
17.4.1 对齐控件 477
17.4 控件格式 477
17.4.5 锁定控件 478
17.4.4 控件的间距 478
17.4.3 控件的大小 478
17.5.1 自定义控件介绍 479
17.5 自定义控件 479
17.5.2 创建自定义控件 480
17.6 小结 484
18.1.1 添加主菜单 485
18.1 主菜单 485
第18章 菜单与工具栏设计 485
18.1.2 修改主菜单属性 486
18.1.3 处理主菜单事件 487
18.1.4 添加子菜单 488
18.1.5 添加分割线 489
18.2.1 添加工具栏 490
18.2 工具栏 490
18.2.2 工具栏事件处理程序 491
18.3.1 添加弹出菜单 492
18.3 上下文菜单 492
18.3.2 处理弹出菜单事件 493
18.4.2 处理状态栏显示 494
18.4.1 添加状态栏 494
18.4 状态栏 494
18.5 小结 499
19.1.1 基于对话框的应用程序 500
19.1 SDI和MDI应用程序 500
第19章 Windows窗体应用程序进阶 500
19.1.2 SDI应用程序 501
19.1.3 MDI应用程序 503
19.2.1 打开文件对话框OpenFileDialog 510
19.2 使用对话框 510
19.2.2 保存文件对话框SaveFileDialog 515
19.2.3 打印对话框 521
19.2.4 字体设置对话框FontDialog 522
19.2.7 自定义对话框 524
19.2.6 对话框的模式 524
19.2.5 颜色设置对话框ColorDialog 524
19.3.2 Graphics类 527
19.3.1 GDI+概述 527
19.3 GDI+简介 527
19.3.3 画笔Pen类 528
19.3.4 字体Font类 530
19.3.5 位图Bitmap类 532
19.3.6 实例扩展 533
19.4.1 MonthCalendar控件 534
19.4 高级控件 534
19.4.2 DateTimePicker控件 536
19.4.3 TreeView控件 539
19.4.4 TabControl控件 544
19.5.1 Windows Media Player 548
19.5 Windows媒体播放器 548
19.5.2 为程序添加多媒体播放功能 549
19.6 小结 551
第4部分 数据库应用 553
20.1.1 数据库简介 554
20.1 数据库基本知识 554
第20章 数据访问技术 554
20.1.3 SQL语言简介 555
20.1.2 数据库分类 555
20.1.5 SQL Server 2005 Express数据库简介 556
20.1.4 Access数据库简介 556
20.1.6 其他数据库简介 562
20.2.1 数据定义 564
20.2 SQL语言介绍 564
20.2.2 数据查询 567
20.2.3 数据更新 575
20.2.4 数据控制 576
20.2.5 常用函数 577
20.3.1 ADO.NET简介 578
20.3 ADO.NET 578
20.3.2 ADO.NET类介绍 579
20.3.3 ADO.NET中的XML 582
20.3.4 ADO.NET中的SQL 583
20.3.5 DataReader类简介 584
20.3.7 注意事项 585
20.3.6 DataSet类简介 585
20.4.3 MySQL 586
20.4.2 SQL Server 586
20.4 ADO.NET与各种数据库的连接 586
20.4.1 Access 586
20.5 小结 587
20.4.5 其他数据库 587
20.4.4 Oracle 587
21.1.1 定义数据源 588
21.1 窗体控件的数据绑定 588
第21章 Windows窗体应用程序与数据库应用 588
21.1.2 使用DataSet 591
21.1.3 添加数据绑定控件 592
21.2 应用程序实例 593
21.1.4 绑定数据 593
21.3 小结 595
第5部分 Web应用 597
22.1.1 HTML的由来 598
22.1 HTML简介 598
第22章 Web应用基础 598
22.1.2 页面介绍 599
22.1.3 格式设置 601
22.1.4 文本标记 603
22.1.5 图像 605
22.1.6 表格 606
22.1.7 链接 608
22.1.8 框架 611
22.1.9 表单 613
22.3 第一个ASP.NET程序 616
22.2.2 其他动态页面技术 616
22.2 ASP.NET简介 616
22.2.1 静态页面与动态页面 616
22.4.1 Label控件 618
22.4 常用控件介绍 618
22.4.2 TextBox控件 619
22.4.3 Button控件 620
22.4.4 DropDownList控件 621
22.4.5 ListBox控件 622
22.4.6 CheckBox控件和CheckBoxList控件 623
22.4.7 RadioButton控件和RadioButtonList控件 625
22.4.8 Image控件 628
22.4.9 Table控件 629
22.4.10 Calendar控件 630
22.5 ASP.NET服务端支持 631
22.6 小结 633
23.1.1 什么是校验 634
23.1 校验简介 634
第23章 数据校验 634
23.2 验证控件 635
23.1.2 客户端校验和服务端校验 635
23.2.1 必需字段验证 636
23.2.2 比较验证 640
23.2.3 范围验证 645
23.2.4 正则表达式验证 649
23.2.5 自定义验证 653
23.2.6 验证总结 658
23.3 小结 660
24.1.1 System.IO类介绍 661
24.1 文件 661
第24章 输入与输出 661
24.1.3 文件夹类Directory 663
24.1.2 文件类File 663
24.1.4 文件信息类FileInfo 664
24.1.5 文件夹信息类DirectoryInfo 665
24.2.2 文件流类FileStream 667
24.2.1 流操作类介绍 667
24.1.6 文件信息类与文件夹信息类的用法 667
24.2 流 667
24.2.3 流写入类StreamWriter 671
24.2.4 流读取类StreamReader 673
24.2.5 二进制流写入类BinaryWriter 674
24.2.6 二进制流读取类BinaryReader 675
24.3 高级实例 676
24.3.1 窗体布局 677
24.3.2 代码实现 679
24.3.3 实例进阶 683
24.4 小结 684
25.1.1 Windows Installer概述 685
25.1 部署工程的建立 685
第25章 应用程序部署 685
25.1.2 Visual Studio 2005向导 686
25.2.2 快捷方式 691
25.2.1 安装目录 691
25.2 规划安装程序 691
25.3 制作安装程序 692
25.2.4 文件类型 692
25.2.3 依赖项 692
25.3.2 欢迎界面 693
25.3.1 用户界面编辑器 693
25.3.3 安装目录 694
25.3.6 完成界面 695
25.3.5 安装进度 695
25.3.4 确认安装 695
25.3.8 添加快捷方式 696
25.3.7 程序的删除 696
25.3.10 注册表编辑器 697
25.3.9 添加文件 697
25.3.11 文件类型编辑器 698
25.3.13 启动条件编辑器 699
25.3.12 自定义操作编辑器 699
25.4.1 NSIS 700
25.4 其他安装工具简介 700
25.4.2 InstallShield 701
25.5 小结 702
第6部分 案例实战 703
26.1.1 数据访问 704
26.1 需求分析 704
第26章 学生管理信息系统 704
26.1.3 系统业务功能 705
26.1.2 权限分析 705
26.2.3 字典界面 708
26.2.2 主界面 708
26.2 界面设计 708
26.2.1 登录界面 708
26.2.5 学生管理界面 711
26.2.4 用户管理 711
26.3.1 数据库连接类 712
26.3 数据访问代码 712
26.3.2 数据库命令 713
26.3.3 关闭数据库 714
26.4.1 字符串验证 715
26.4 通用类代码 715
26.4.3 下拉列表绑定类 716
26.4.2 日期时间类 716
26.5.1 系统用户 720
26.5 权限管理 720
26.5.2 用户实体 722
26.5.3 用户管理 723
26.6.1 奖励实体 726
26.6 业务相关类 726
26.6.2 奖励管理类 727
26.6.3 关系变动类 729
26.6.4 关系变动管理类 730
26.6.5 关系变动类型管理类 732
26.6.6 班级实体类 733
26.6.7 班级管理类 735
26.6.8 学院管理类 736
26.6.11 惩罚实体类 738
26.6.10 管理类接口 738
26.6.9 实体接口 738
26.6.12 惩罚管理类 740
26.6.13 惩罚类型管理类 741
26.6.14 专业管理类 743
26.6.15 学生实体类 745
26.6.16 学生管理类 750
26.7.1 更改密码界面 754
26.7 界面代码 754
26.7.2 编辑窗体 756
26.7.3 新建学生界面 762
26.7.4 属性窗体 768
26.7.5 主窗体 770
26.7.6 组织窗体 778
26.7.7 类型设定窗体 789
26.7.8 登录窗体 794
26.7.9 用户管理窗体 796
26.8 小结 798
第27章 ASP.NET学生管理信息系统 799
27.1 需求分析 799
27.1.1 数据访问 799
27.1.2 权限分析 800
27.1.3 系统业务功能 800
27.2.2 管理学生信息界面 803
27.2 界面设计 803
27.2.1 登录页面设计 803
27.2.3 组织机构设置界面 805
27.2.4 字典设置界面 806
27.2.5 系统管理界面 807
27.3 主页面及控件实现 809
27.3.1 主页面 809
27.3.2 页脚控件 811
27.3.3 菜单控件 812
27.4 学生管理实现 816
27.4.1 学籍异动及奖惩 816
27.4.2 新增学生 828
27.4.3 管理学生信息 836
27.4.4 查看学生信息 844
27.4.5 更新学生信息 849
27.5 组织管理实现 858
27.5.1 班级管理 858
27.5.2 学院管理 866
27.5.3 专业管理 872
27.6 系统管理实现 879
27.6.1 用户登录 879
27.6.2 用户更新 882
27.6.3 用户管理 886
27.7 字典管理实现 893
27.7.1 学籍异动类型管理 893
27.7.2 处罚类型管理 899
27.8 小结 905