第1篇 基础技术篇 2
第1章 Visual Studio 2008 IDE简介 2
1.1安装Visual Studio 2008 2
1.2 Visual Studio 2008概览 3
起始页 3
开发环境 4
窗口布局调整 7
1.3用Visual Studio 2008 IDE开发应用程序 8
控制台应用程序 8
Windows窗体应用程序 9
1.4 HelloWorld程序 10
HelloWorld程序 10
namespace命令 10
using命令 11
程序注释 12
Main函数 12
为HelloWorld添加色彩 13
1.5调试应用程序 13
1.6小结 15
第2章 常量和变量 16
2.1常量 16
常量定义 16
常量的初始化 16
使用常量的好处 17
2.2变量 17
变量的声明和使用 17
变量的作用域 18
实例变量和静态变量 18
2.3运算符与表达式 21
算术运算符、关系运算符和逻辑运算符 21
赋值运算符和字符串运算符 21
条件运算符 21
强制类型转换 22
2.4枚举 22
2.5小结 23
第3章 方法与数组 24
3.1方法 24
C#中的方法 24
值传递与引用传递 25
递归方法 26
3.2数组 27
数组类型 28
声明和分配数组 28
数组元素访问 28
3.3小结 29
第4章 流程控制语句 30
4.1条件控制结构 30
条件判断if语句 30
条件选择switch...case语句 31
4.2循环控制结构 33
while循环 33
do...while循环 34
for循环 35
foreach循环 37
break和continue关键字 38
多重循环 39
4.3小结 41
第5章 面向对象程序设计 42
5.1面向对象基本概念 42
对象和类 42
抽象 43
封装 43
继承 44
多态 44
5.2类 44
类的定义 45
构造函数 46
对象实例化和使用 46
C#垃圾回收机制 47
析构函数 47
5.3 C#属性 48
定义属性 48
属性的读写控制 49
使用属性的好处 51
5.4重载 53
重载的意义 53
方法重载 55
运算符重载 57
5.5继承和多态 60
实现继承 60
变量的定义类型与实际类型 61
基类和派生类之间的类型转换 62
虚方法和多态 63
抽象类和密封类 66
this关键字 68
base关键字 70
构造函数相互调用 71
5.6小结 71
第6章 结构和接口 72
6.1结构 72
结构概述 72
何时使用结构 73
6.2接口 74
接口概述 74
使用接口 75
显式接口实现 77
自动生成接口代码框架 80
多重继承程序举例 82
接口与抽象类的对比 84
6.3小结 86
第7章 异常处理 87
7.1异常处理概述 87
认识异常 87
try...catch语句 88
7.2处理异常 90
捕获特定类型的异常 90
finally语句 93
7.3深入了解异常 95
异常传播 95
throw语句 98
自定义异常 99
异常处理机制的优势 102
嵌套try语句 105
7.4小结 107
第2篇 Windows 编程篇 110
第8章 Windows应用程序概述 110
8.1 Windows应用程序浅析 110
认识Windows应用程序 110
手工创建Windows应用程序 112
8.2调试Windows应用程序 113
设置条件断点 114
Trace类 116
消息提示框MessageBox 119
8.3窗体 120
Form类的属性 120
Form类的事件 121
Form类的方法 123
8.4小结 124
第9章 Windows窗体控件(一) 125
9.1键盘和鼠标事件 125
键盘事件 125
鼠标事件 127
9.2 Button控件 128
Button控件的属性 128
Button控件的事件和方法 132
9.3文本控件 133
TextBox控件 134
MaskedTextBox控件 135
RichTextBox控件 143
NumericUpDown控件 145
9.4图片控件 146
ImageList控件 146
PictureBox控件 148
9.5日期控件 149
MonthCalendar控件 150
DateTimePicker控件 153
9.6选择控件 154
9.7 Timer控件和ProgressBar控件 156
Timer控件 156
ProgressBar控件 158
9.8小结 159
第10章 Windows窗体控件(二) 160
10.1列表控件 160
列表框控件ListBox 160
拖放 166
复选列表框控件CheckedListBox 169
组合框控件ComboBox 171
10.2列表视图和树形视图控件 173
列表视图控件ListView 173
树形视图控件TreeView 180
10.3容器控件 187
容器控件概述 187
面板控件Panel 188
分组框控件GroupBox 189
标签控件TabControl 189
拆分控件SplitContainer 191
10.4菜单栏、工具栏和状态栏 192
菜单 192
工具栏 196
状态栏 201
工具栏容器 203
10.5其他Windows窗体控件 203
工具提示控件ToolTip 203
通知图标控件Notifylcon 205
属性表格控件PropertyGrid 208
10.6小结 209
第11章 对话框 210
11.1对话框概述 210
模式对话框和非模式对话框 210
对话框结果 212
与对话框交换数据 212
11.2通用对话框 216
文件夹浏览对话框 217
打开文件对话框 217
文件另存为对话框 219
颜色对话框 220
字体对话框 220
11.3打印对话框 223
打印概述 223
打印机设置 225
页面设置 227
打印预览 228
打印多页 229
11.4小结 231
第12章 委托和事件 232
12.1委托 232
委托概述 232
多路广播委托 234
异步委托调用 237
取得异步委托结果 239
Control.Invoke方法 241
12.2事件 243
事件概述 243
事件处理程序 246
12.3深入理解委托和事件 254
12.4小结 259
第13章 用户控件和安装部署 260
13.1用户控件 260
简单用户控件 260
添加属性 261
添加事件 263
综合示例 265
13.2打包应用程序 270
13.3小结 272
第14章 类型和反射 273
14.1值类型和引用类型 273
值类型和引用类型的概念 273
装箱和拆箱 275
对象相等 277
14.2反射 280
System.Type类 281
类型成员 283
14.3小结 297
第15章 C#高级特性 298
15.1泛型 298
泛型的概念 298
使用泛型 299
泛型约束 303
15.2泛型集合类 304
泛型集合接口 304
列表 305
堆栈和队列 315
字典(哈希表) 322
15.3匿名方法 323
匿名方法概述 323
匿名方法实际应用 324
15.4索引器和迭代器 326
索引器 326
迭代器 328
15.5分部类型和可空类型 330
15.6小结 331
第16章 文件操作 332
16.1 System.IO命名空间 332
16.2 .NET文件系统 333
管理目录 333
管理文件 336
16.3文本文件读写 338
16.4二进制文件读写 339
16.5文件操作实例展示 340
16.6小结 343
第3篇 数据库编程篇 346
第17章 SQL Server 2005概述 346
17.1数据库管理 346
Management Studio环境 346
添加和删除数据库 347
备份和还原数据库 349
17.2数据库表管理 351
修改表结构 351
键和索引 352
17.3 SQL Server 2005其他常用功能 353
配置管理器 353
查询分析器 354
17.4小结 355
第18章 数据访问 356
18.1连接数据库 356
从VS 2008连接到数据库 356
数据库连接类DbConnection 357
18.2执行SQL命令 360
数据库命令类DbCommand 360
SQL命令参数 364
18.3 DataReader和DataSet 366
数据读取器DataReader 366
数据集DataSet概述 370
数据表、数据列和数据行 371
构建表结构 372
编辑数据 374
数据行状态 375
18.4数据适配器 377
SqlDataAdapter概述 377
填充数据 378
获取表架构 381
更新数据库 383
命令生成类SqlCommandBuilder 385
18.5显示数据 386
数据表格控件DataGridView 386
控制DataGridView外观和行为 387
18.6数据集设计器和强类型数据集 388
添加数据集 388
添加查询 392
18.7小结 393
第4篇 Web编程篇 396
第19章 基本Web服务器控件 396
19.1文本控件 396
Label控件 396
TextBox控件 396
HiddenField控件 397
HyperLink控件 397
19.2按钮控件 400
Button控件 400
LinkButton控件 401
ImageButton控件 402
19.3日历控件 403
19.4文件上传控件 404
19.5选择控件 405
RadioButton控件 406
CheckBox控件 407
19.6列表控件 407
DropDownList控件 407
ListBox控件 409
BulletedList控件 410
CheckBoxList控件 410
19.7小结 410
第20章 高级Web控件 411
20.1验证控件 411
验证控件简介 411
RequiredFieldValidator控件 412
RangeValidator控件 414
CompareValidator控件 415
RegularExpressionValidator控件 417
ValidationSummary控件 419
20.2广告控件 421
20.3视图控件一TreeView 423
20.4向导控件—Wizard 424
20.5小结 427
第21章 数据访问 428
21.1使用DataSource控件连接到数据源 428
DataSource控件简介 428
LmqDataSource控件 429
SqlDataSource控件 431
其他数据源控件 434
21.2数据绑定控件 435
数据绑定控件简介 435
GridView控件 436
DetailsView控件 438
FormView控件 440
DataList控件 442
Repeater控件 443
ListView绑定数据控件 445
DataPager控件 446
21.3小结 447
第22章 母版页和主题 448
22.1用母版页设计网站统一布局 448
认识母版页 448
母版页的优点 448
母版页的设计 449
内容页的设计 449
22.2母版页高级应用 451
母版页的嵌套 451
以编程方式访问母版页 452
22.3主题和外观 453
主题和外观概述 453
创建主题和外观 454
在程序中应用主题和外观 454
以编程方式访问主题和外观 455
22.4小结 455
第23章 状态管理 456
23.1状态管理概述 456
23.2视图状态 456
视图状态概述 456
保存视图状态的值 457
从视图状态中读取值 458
23.3 Cookie 459
Cookie简介 460
创建Cookie 460
读取Cookie 461
删除Cookie 462
23.4应用程序状态 464
应用程序状态简介 464
保存应用程序状态中的值 464
读取应用程序状态的值 465
23.5会话状态 465
会话状态简介 465
保存会话状态的值 465
读取会话状态的值 466
23.6小结 467
第24章 用户控件和自定义控件 468
24.1用户控件概述 468
24.2创建和使用用户控件 468
24.3在网页中包含用户控件 470
24.4将Web窗体页转换为ASP.NET用户控件 472
单文件网页转换为用户控件 472
将代码隐藏网页转换为用户控件 472
24.5自定义控件概述 474
24.6创建自定义控件 475
创建自定义控件的方法 475
自定义分页控件 475
24.7用户控件和自定义控件的区别 477
24.8小结 478
第25章 ASP.NETAjax 479
25.1 Ajax技术简介 479
25.2 ScriptManager控件 479
ScriptManager控件简介 480
ScriptManager控件属性 480
开发示例 481
25.3 UpdatePanel控件 482
UpdatePanel控件简介 482
UpdatePanel控件属性 483
开发示例 483
UpdatePanel控件的使用技巧 485
25.4 UpdateProgress控件 485
UpdateProgress控件简介 485
UpdateProgress控件的属性 486
开发示例 487
25.5 Timer控件 488
Timer控件简介 488
Timer控件的属性 489
开发示例 489
25.6小结 490
第5篇 最新技术篇 492
第26章 C# 3.0新特性 492
26.1属性和构造函数 492
自动实现属性 492
在创建实例时为属性赋值 493
26.2隐式类型和匿名类型 493
隐式类型 493
隐式类型数组 495
匿名类型 495
26.3扩展方法和Lambda表示式 496
扩展方法 496
Lambda表达式 498
26.4 LINQ简介 500
基本查询 500
延迟执行 503
排序 504
分组 505
26.5小结 508
第27章 WPF简介 509
27.1 WPF概览 509
独立应用程序 509
浏览器应用XBAP 511
27.2标记和代码 512
XAML标记语言 512
后台代码 512
27.3绘图 515
形状 515
画刷 516
坐标变换 518
27.4 WPF控件概述 520
按钮 520
列表控件 522
扩展控件 522
27.5布局 523
画布Canvas 523
表格Grid 524
堆栈面板StackPanel 525
停靠面板DockPanel 526
27.6小结 527
第28章 WCF简介 528
28.1 WCF概览 528
创建服务 528
使用服务 530
创建WCF服务库 531
28.2 WCF基本概念 533
地址 533
绑定 533
协定 534
终结点 535
宿主 535
28.3基本WCF编程 536
编码配置WCF服务 536
在配置文件中配置WCF服务 540
28.4服务协定 543
定义协定 543
请求-答复协定 544
单向协定 544
双工协定 545
28.5小结 548
第6篇 项目实战篇 550
第29章 论坛系统 550
29.1数据库分析设计 550
自动生成的配置数据库 550
创建数据表 552
设计表关系 552
29.2用户权限管理 553
用户注册 553
用户登录 553
29.3发表留言主题 554
设计发表留言界面 554
实现发表留言功能 556
29.4浏览留言主题 558
29.5回复留言 560
显示所有的回复 560
添加回复 562
使用新功能快速回复 564
为“删除”按钮添加确认提示 566
29.6短消息管理 567
发送短消息 567
接收短消息 568
显示短消息提示 570
29.7用户自定义界面风格功能 572
启用ASP.NET的Profile配置 572
实现个性化界面定制 572
29.8小结 575
第30章 俄罗斯方块网络对战 576
30.1游戏简介 576
游戏规则简介 576
名词术语 577
30.2单元格的设计与实现 577
设计TetrisCell类 577
测试TetrisCell类 579
30.3方块的设计与实现 580
方块和单元格坐标 581
设计TetrisBlock类 581
改进TetrisCell类 585
方块旋转 586
测试TetrisBlock类 586
30.4游戏地图的设计 587
与游戏地图相关的类 587
TetrisMap类功能分析 588
单元格集合类CellCollection 589
30.5游戏画面绘制 590
双缓冲技术 591
绘图类TetrisDrawer基本功能 592
局部刷新 594
行闪烁 595
游戏界面类TetrisUI 596
改进TetrisBlock和TetrisCell类 597
30.6游戏地图的实现 597
游戏地图类TetrisMap框架 597
判断满行和消除行 599
粘贴活动方块 600
移动和旋转方块 602
落下活动方块 603
30.7游戏面板 603
界面设计 604
TetrisGameBoard类的字段和属性 604
游戏速度计算 605
添加音效 606
游戏设置窗体 608
TetrisGameBoard完整代码 609
测试游戏面板 615
30.8添加网络对战功能 615
开源网络组件ALAZ.SystemEx.NetEx 615
序列化 616
随机数种子 618
添加行 618
连接设置窗体 620
游戏命令 621
游戏主窗体 624
30.9小结 630