《C#编程实战宝典》PDF下载

  • 购买积分:22 如何计算积分?
  • 作  者:付强,丁宁等编著
  • 出 版 社:北京:清华大学出版社
  • 出版年份:2014
  • ISBN:9787302355175
  • 页数:846 页
图书介绍:本书由浅入深,全面系统地对Visual C#2010的语言结构以及相关特性进行了比较全面的介绍。分8篇,内容涵盖开发环境及C#语言简介、C#程序设计基础、C面向对象简介、Windows程序编程、C#的高级特征和工具、Web数据库开发、。NET 4的增强功能、用MVC开发音乐商店网站、电子购物商城等。

第1篇 开发环境及C#语言简介 2

第1章 Visual Studio 2010介绍(教学视频:31分钟) 2

1.1 .NET概述 2

1.1.1 .NET的前世今生 2

1.1.2 什么是微软中间语言 3

1.1.3 背后默默付出的垃圾收集器 4

1.2 .NET Framework概述 5

1.2.1 .NET Framework包含什么 5

1.2.2 .NET平台的核心:CLR 7

1.2.3 基类库是神马 7

1.2.4 公共语言运行规范 9

1.3 Visual Studio 2010有哪些新增功能 9

1.4 Visual Studiō 2010开发环境介绍 11

1.4.1 安装Visual Studio 2010 11

1.4.2 Visual Studio 2010提供哪些项目模板 13

1.4.3 Visual Studio 2010提供哪些网站模板 15

1.4.4 Visual Studio 2010提供哪些文件模板 15

1.4.5 与Visual Studio 2010的第一次相会 16

1.4.6 必须熟悉的开发工具栏和菜单栏 17

1.4.7 用对象浏览器查看对象信息 20

1.4.8 可视化利器:工具箱和属性窗口 21

1.5 定制环境 23

1.5.1 让字体和颜色更适合自己 23

1.5.2 在项目和解决方案中保存文件 23

1.5.3 使用任务列表和注释管理代码 24

1.5.4 在命令窗口中执行命令 24

1.5.5 代码显示行号与代码折叠 26

1.5.6 管理Visual Studio 2010中的子窗口 27

1.5.7 调试与生成程序 28

1.6 学会使用MSDN帮助系统 30

1.7 用Visual Studio 2010编写第一个程序 31

1.8 本章总结 33

1.9 实战练习 34

第2章 C#简介(教学视频:16分钟) 35

2.1 C#与.NET的关系 35

2.2 C#有哪些特点 35

2.2.1 简单性 36

2.2.2 类型统一性 38

2.2.3 面向对象性 39

2.2.4 类型安全性 40

2.2.5 兼容性 41

2.3 C#与其他语言对比 41

2.4 C#与VB.NET的异同 42

2.4.1 代码表现形式的差异 42

2.4.2 数据类型和变量使用的差异 43

2.4.3 类、数据类型、函数以及接口 44

2.4.4 操作符与表达式的差异 44

2.4.5 控制流程语句的差异 45

2.4.6 错误处理的差异 47

2.4.7 关键字的差异 47

2.4.8 访问修饰符的差异 47

2.4.9 语法的差异 48

2.4.10 C#与VB.NET实例对比 48

2.5 C#与C++的异同 51

2.5.1 托管环境的差异 51

2.5.2 C#使用.NET的对象 52

2.5.3 C#的语句 52

2.5.4 C#中取消的要素 52

2.5.5 操作符重载的差异 52

2.5.6 头文件的差异 53

2.5.7 程序书写的差异 53

2.5.8 被取消的指针 53

2.5.9 虚函数的差异 53

2.5.10 C#与C++实例对比 55

2.6 C#与.Java的异同 56

2.6.1 数据类型的差异 56

2.6.2 类的差异 57

2.6.3 属性定义的差异 58

2.6.4 事件、指针与界面的差异 59

2.6.5 C#与Java实例对比 59

2.7 本章总结 60

2.8 实战练习 61

第2篇 C#程序设计基础 64

第3章 C#数据类型(教学视频:37分钟) 64

3.1 初识C#的数据类型 64

3.2 存储实际数据的值类型 65

3.2.1 什么是值类型 65

3.2.2 整型 66

3.2.3 字符型 67

3.2.4 浮点型 68

3.2.5 小数型 69

3.2.6 大整数型 69

3.2.7 复数型 70

3.2.8 布尔型 71

3.2.9 C#值类型的数值类型 71

3.3 存储引用地址的引用类型 72

3.3.1 什么是引用类型 72

3.3.2 类类型 72

3.3.3 对象类型 73

3.3.4 字符串类型 73

3.3.5 接口类型 75

3.3.6 dynamic类型 76

3.4 数据类型是可以转换的 78

3.4.1 什么时候发生类型转换 78

3.4.2 显式转换 78

3.4.3 隐式转换 79

3.4.4 不同数值类型之间的转换 79

3.4.5 数值类型和字符串之间的转换 80

3.4.6 字符的ASCII码和Unicode码之间的转换 82

3.4.7 字符串和字符数组之间的转换 84

3.4.8 字符串和字节数组之间的转换 85

3.4.9 数值类型和字节数组之间的转换 86

3.4.10 不同类型之间的强制转换 87

3.5 C#的用户自定义数据类型 88

3.5.1 认识枚举类型 88

3.5.2 枚举编程示例 89

3.5.3 认识结构类型 90

3.5.4 结构编程示例 90

3.5.5 结构也支持方法 92

3.5.6 结构与类有什么不同 93

3.5.7 哪些地方应使用结构类型 94

3.6 本章总结 94

3.7 实战练习 94

第4章 变量与表达式(教学视频:42分钟) 96

4.1 常量与变量 96

4.1.1 什么是常量 96

4.1.2 静态常量的特点 96

4.1.3 动态常量的特点 97

4.1.4 该用静态常量还是动态常量 97

4.1.5 什么是变量 98

4.1.6 认识变量的实质 99

4.1.7 变量有哪些种类 100

4.1.8 怎样给变量命名 102

4.2 连接的桥梁——运算符与表达式 102

4.2.1 C#的运算符分类 102

4.2.2 算术运算符 103

4.2.3 关系运算符 105

4.2.4 一般赋值运算符 106

4.2.5 复合赋值运算符 107

4.2.6 逻辑运算符 109

4.2.7 复习二进制知识 112

4.2.8 二进制的位运算符 113

4.2.9 有逻辑判断功能的三元运算符 115

4.2.10 自增和自减运算符 116

4.2.11 应该先进行什么运算 117

4.3 关键字 118

4.4 本章总结 119

4.5 实战练习 119

第5章 程序控制语言(教学视频:46分钟) 120

5.1 C#有哪些种类的语句 120

5.2 选择语句让程序具有智能 121

5.2.1 选择语句的作用 121

5.2.2 认识if语句 121

5.2.3 单分支if语句 122

5.2.4 二分支if语句 123

5.2.5 多分支if语句 124

5.2.6 if语句多层嵌套 125

5.2.7 switch多分支选择语句 127

5.2.8 switch语句编程示例 128

5.3 用循环语句进行重复劳动 129

5.3.1 dO循环语句 129

5.3.2 while循环语句 130

5.3.3 for循环语句 131

5.3.4 foreach循环语句 133

5.4 用跳转语句改变程序流程 134

5.4.1 用break语句跳出循环 134

5.4.2 用continue语句进入下次循环 135

5.4.3 用return语句返回 136

5.4.4 用goto语句跳到指定行 137

5.4.5 用goto语句跳出switch语句 138

5.4.6 用goto语句跳出一层嵌套循环 139

5.4.7 用throw语句抛出异常 141

5.5 用注释语句让代码意图更明了 142

5.5.1 普通注释语句 142

5.5.2 可生成帮助文档的注释语句 143

5.6 本章总结 146

5.7 实战练习 146

第6章 函数与方法(教学视频:38分钟) 147

6.1 函数是C#的基本结构 147

6.1.1 函数与方法 147

6.1.2 无参和有参函数 147

6.2 函数的必备件:参数与返回值 148

6.2.1 参数有什么用 148

6.2.2 值参数的使用 148

6.2.3 引用参数的使用 149

6.2.4 输出参数的使用 152

6.2.5 数组参数的使用 153

6.2.6 命名参数和可选参数 154

6.2.7 利用返回值获取数值 156

6.2.8 利用返回值判断逻辑 157

6.3 变量的作用域 159

6.3.1 最常见的局部变量 159

6.3.2 需要惧用的全局变量 160

6.4 认识主入口函数Main() 161

6.5 C#中最常用的函数 165

6.6 本章总结 166

6.7 实战练习 166

第3篇 C#面向对象编程简介 170

第7章 类和对象(教学视频:33分钟) 170

7.1 类和对象的关系 170

7.2 类的定义 171

7.2.1 创建一个类 171

7.2.2 类成员的访问类型 173

7.2.3 创建类的成员方法 174

7.3 创建对象 175

7.3.1 类的构造函数有什么用 175

7.3.2 成员变量的初始化 177

7.3.3 创建类的拷贝构造函数 179

7.3.4 用关键字this引用当前对象 179

7.4 静态成员的使用 180

7.4.1 什么是类的静态成员 180

7.4.2 静态方法怎样调用 181

7.4.3 静态构造函数的优势 182

7.4.4 使用私有构造函数保护静态成员 182

7.4.5 使用静态成员变量计录对象数量 183

7.5 对象的销毁 184

7.5.1 C#的析构函数 184

7.5.2 用Dispose()方法释放资源 185

7.5.3 用using声明作用范围 185

7.6 参数传递 186

7.6.1 通过引用传递返回多个值 186

7.6.2 用out类型参数返回值 189

7.7 重写方法和构造函数让类更宜用 191

7.8 用属性封装类的数据 193

7.8.1 类的属性定义 193

7.8.2 用get访问器返回属性值 195

7.8.3 用set访问器设置属性值 196

7.9 用Readonly类型变量为类设置不变的值 196

7.10 本章总结 198

7.11 实战练习 199

第8章 继承与多态(教学视频:39分钟) 200

8.1 用继承对类进行扩展 200

8.1.1 面向对象程序中的继承 200

8.1.2 C#的继承机制 201

8.1.3 继承是怎样调用构造函数 205

8.1.4 用base关键字调用基类构造函数 206

8.1.5 使用protected访问类型 208

8.1.6 用sealed关键字终止继承 209

8.2 万类之根——Object类 210

8.3 C#类的多态特性 212

8.3.1 什么是多态 212

8.3.2 在基类与子类中定义同名方法 213

8.3.3 方法重写——virtual和override关键字的使用 214

8.3.4 用new关键字指出重写方法 216

8.4 对象类型转换——Up-casting和Down-casting 217

8.4.1 子类到基数的Up-casting类型转换 217

8.4.2 基数到子类的Down-casting类型转换 217

8.4.3 用is和as关键字做对象类型检查 218

8.5 装箱和拆箱 219

8.6 本章总结 219

8.7 实战练习 220

第9章 抽象类和接口(教学视频:24分钟) 221

9.1 定义抽象类 221

9.2 定义统一规划的接口 224

9.2.1 定义接口 224

9.2.2 一个类实现多个接口 227

9.2.3 实现多接口同名方法 229

9.2.4 使用is和as操作符实现接口转换 231

9.2.5 接口间能继承吗 232

9.3 本章总结 234

9.4 实战练习 234

第10章 数组与集合(教学视频:38分钟) 235

10.1 数组的数组——多维数组 235

10.1.1 认识多维数组 235

10.1.2 怎样实例化多维数组 236

10.1.3 什么是变长数组 238

10.2 用foreach循环进行数组的遍历 240

10.3 比数组灵活好用的集合 243

10.3.1 用ArrayList集合保存不同类型数据 244

10.3.2 用Stack集合处理栈 246

10.3.3 用Queue集合处理队列 248

10.4 键-值对应形式的字典类型集合 249

10.4.1 Hashtable类存储方式 250

10.4.2 创建Hashtable集合的方法 250

10.4.3 用Add方法向Hashtable集合中添加元素 250

10.4.4 从Hashtable集合中获取元素的方法 251

10.4.5 用Remove方法移除Hashtable集合中的元素 251

10.4.6 获取Hashtable集合的元素与键值 252

10.4.7 在Hashtable集合中检索元素 253

10.4.8 SortedList类与Hashtable类的区别 253

10.4.9 SortedList类常用方法 253

10.5 本章总结 255

10.6 实战练习 256

第11章 代理和事件(教学视频:31分钟) 257

11.1 代理 257

11.1.1 什么是代理 257

11.1.2 代理所指向方法的类型和标识 258

11.1.3 代理引用的声明和使用 258

11.1.4 .NET Framework中的代理 262

11.1.5 代理用作方法的参数 262

11.1.6 了解多重代理 264

11.1.7 多重代理的实现方法 264

11.1.8 怎样移除多重代理指向的方法 266

11.2 事件和事件处理 267

11.2.1 C#的事件处理 267

11.2.2 事件举例——时钟事件 268

11.2.3 多重事件的处理 270

11.2.4 利用事件传递数据 271

11.3 本章总结 274

11.4 实战练习 275

第4篇 Windows程序设计 278

第12章 WindowS应用程序概述(教学视频:29分钟) 278

12.1 Windows应用程序 278

12.1.1 什么是Windows应用程序 278

12.1.2 创建Windows应用程序 278

12.1.3 程序入口文件Program.cs 279

12.1.4 窗口程序文件Forml.cs 279

12.1.5 窗口设计文件Forml.Designer.cs 280

12.2 Windows应用程序窗体 281

12.2.1 C#的Form类 281

12.2.2 Form类常用属性 281

12.2.3 Form类常用事件 282

12.3 为窗体添加控件 283

12.3.1 Windows窗体控件 283

12.3.2 控件常见属性 284

12.3.3 控件常用公共事件 284

12.3.4 向窗体添加控件的方法 285

12.3.5 调整控件的布局 285

12.4 Windows应用程序编程示例 287

12.4.1 创建一个窗体 287

12.4.2 用属性控制窗体外观 287

12.4.3 向窗体添加控件 288

12.4.4 添加控件事件处理程序 288

12.4.5 查看窗体运行效果 288

12.5 本章总结 289

12.6 实战练习 289

第13章 visual Studio 2010控件介绍(教学视频:39分钟) 290

13.1 接收输入的文本编辑控件 290

13.1.1 TextBox控件的作用 290

13.1.2 怎样获取或设置TextBox控件的内容 291

13.1.3 TextBox控件也可输入多行文本 292

13.1.4 选择TextBox控件中的文本 293

13.1.5 设置Textbox控件为密码框 294

13.1.6 检查TextBox控件的输入值 295

13.1.7 支持格式化的RichTextBox控件 295

13.1.8 选择RichTextBox控件中的文本 296

13.1.9 在RichTextBox控件中撤销上次操作 297

13.1.10 拖放RichTextBox控件中的文本 298

13.1.11 设置RichTextBox控件中的文本格式 299

13.1.12 设置RichTextBox控件的文本缩进 300

13.1.13 在RichTextBox控件中添加超链接 302

13.1.14 RichTextBox控件的文件操作 302

13.2 不能编辑的文本显示控件 304

13.2.1 用Label控件显示文本 304

13.2.2 用LinkLabel控件显示超链接文本 305

13.2.3 保存超链接的LinkCollection集合 307

13.2.4 LinkLabel控件编程示例 307

13.3 包容其他控件的容器控件 309

13.3.1 用Panel控件细分窗体 309

13.3.2 有标题的容器控件GroupBox 312

13.3.3 多页容器控件TabControl 313

13.3.4 TabControl控件的几种常见外观 314

13.3.5 TabControl控件中标签页的选择 316

13.3.6 添加TabControl控件中的标签页 318

13.3.7 网格形式容器控件TableLayoutPanel 320

13.3.8 设置TableLayoutPanel控件的外观 321

13.3.9 添加控件到TableLayoutPanel控件 323

13.4 值设置控件 325

13.4.1 用CheckBox控件选择打开或关闭状态 325

13.4.2 用RadioButton控件进行多选一操作 328

13.5 本章总结 329

13.6 实战练习 329

第14章 列表选择控件介绍(教学视频:43分钟) 330

14.1 ListBox控件 330

14.1.1 用ListBox显示列表 330

14.1.2 用ListBox添加列表项 330

14.1.3 设置ListBox的行为 332

14.1.4 让ListBox支持多选 334

14.1.5 设置ListBox的外观 336

14.1.6 对ListBox列表进行排序 337

14.1.7 控制ListBox列表项的刷新 337

14.1.8 查找ListBox中的列表 338

14.1.9 ListBox控件的常用方法 340

14.2 ComboBox控件 342

14.2.1 认识ComboBox控件 342

14.2.2 设置ComboBox下拉样式 342

14.2.3 设置ComboBox的自动补齐 344

14.2.4 ComboBox自动补齐的数据源 344

14.2.5 设置ComboBox自动补齐方式 347

14.2.6 ComboBox的常见事件 348

14.2.7 修改ComboBox的子项 349

14.2.8 ComboBox的子项绘制 350

14.3 CheckedListBox控件 353

14.3.1 带复选标记的列表控件CheckedListBox 353

14.3.2 CheckedListBox控件编程示例 355

14.4 ListView控件 359

14.4.1 带图标的列表控件ListView 359

14.4.2 ListView的5种视图 360

14.4.3 使用任务窗体设置ListView 361

14.4.4 用ImageList给ListView提供图标 362

14.4.5 设置ListView的子项 364

14.4.6 设置Details视图模式的数据 365

14.4.7 给ListView添加分组设置 367

14.4.8 让ListView支持拖曳操作 368

14.4.9 在ListView中进行搜索 370

14.5 TreeView控件 371

14.5.1 用TreeView控件显示分层数据 371

14.5.2 添加节点到TreeView 372

14.5.3 在节点前显示复选框 374

14.5.4 选中节点的常用约定 376

14.5.5 用ImageList为TreeView提供图标 376

14.5.6 展开与折叠TreeView的节点 377

14.5.7 允许编辑TreeView的节点文本 379

14.5.8 让TreeView支持拖曳操作 380

14.6 本章总结 383

14.7 实战练习 383

第15章 数据显示控件(教学视频:27分钟) 384

15.1 DataGridView控件以表格显示数据 384

15.1.1 DataGridView有哪些功能 384

15.1.2 设置对表格数据的操作 385

15.1.3 在窗体中如何放置DataGridView 388

15.1.4 为DataGridView提供数据 389

15.1.5 DataGridView添加列 389

15.1.6 冻结DataGridView中的列 390

15.1.7 编辑DataGridView中的列 391

15.2 为DataGridView服务的类 392

15.2.1 DataGridViewElement对象模型 392

15.2.2 单元格对象模型DataGridViewCell 393

15.2.3 数据列对象模型DataGridViewColumn 394

15.2.4 数据行对象模型DataGridViewRow 394

15.3 设置DataGridView的格式 395

15.3.1 设置单元格边框样式 395

15.3.2 设置DataGridView控件边框样式 396

15.3.3 设置单元格边框样式 397

15.3.4 设置左上角单元格边框样式 398

15.3.5 设置单元格样式 399

15.3.6 单元格样式设置的优先级 402

15.3.7 设置DataGridView外观 404

15.3.8 用属性设置可对表格的操作 404

15.3.9 DataGridView其他常用属性 405

15.3.10 用AutoResizeColumm方法调列宽 407

15.3.11 用AutoResizeColumns方法调整所有列宽 409

15.3.12 用AutoResizeColumnHeadersHeight方法调整列标题高度 410

15.3.13 用AutoResizeRowHeadersWidth方法调整行标题宽度 411

15.3.14 DataGridView其他常用方法 412

15.4 DataGridView中显示数据的相关类 413

15.4.1 设置数据排序模式 413

15.4.2 用DataGridViewTextBoxColumn显示文本数据列 413

15.4.3 用DataGridViewCheckBoxColumn显示二元状态数据列 415

15.4.4 用DataGridViewlmageColumn显示图像数据列 416

15.4.5 用DataGridViewButtonColumn显示按钮数据列 418

15.4.6 用DataGridViewComboBoxColumn显示下拉列表数据列 419

15.4.7 用DataGfidViewLinkColumn显示超链接数据列 421

15.5 本章总结 423

15.6 实战练习 423

第16章 通用对话框(教学视频:40分钟) 424

16.1 消息对话框 424

16.1.1 用消息对话框显示信息 424

16.1.2 该怎样显示消息对话框 425

16.1.3 消息对话框能显示哪些按键 426

16.1.4 用户按了哪个按钮 427

16.1.5 消息对话框可显示哪些图标 429

16.1.6 消息对话框编程示例 430

16.2 文件对话框 433

16.2.1 认识OpenFileDialog组件 433

16.2.2 显示“打开文件”对话框 434

16.2.3 打开快捷方式引用的文件 434

16.2.4 同时选择多个文件 435

16.2.5 设置可打开的文件类型 436

16.2.6 设置“打开”文件对话框的外观 438

16.2.7 检查指定的文件是否存在 440

16.2.8 使用SaveFileDialog组件 441

16.2.9 SaveFileDialog组件编程示例 442

16.2.10 另存文件时的覆盖与新建 444

16.2.11 使用FolderBrowserDialog组件 444

16.2.12 FolderBrowserDialog组件编程示例 445

16.3 字体选择对话框 448

16.3.1 使用FontDialog组件 448

16.3.2 FontDialog组件编程示例 449

16.4 颜色选择对话框 451

16.4.1 使用ColorDialog组件 451

16.4.2 ColorDialog组件编程示例 452

16.5 打印相关对话框 454

16.5.1 使用PrintDocument组件 454

16.5.2 PrintDocument组件编程示例 454

16.5.3 使用PageSetupDialog组件 457

16.5.4 PageSetupDialog组件编程示例 458

16.5.5 使用PrintPreviewDialog组件 458

16.5.6 PrintPreviewDialog组件编程示例 460

16.5.7 使用PrintDialog组件 462

16.6 本章总结 463

16.7 实战练习 464

第17章 其他常用控件(教学视频:29分钟) 465

17.1 计时器组件 465

17.1.1 Timer组件有什么用 465

17.1.2 用Timer控制程序定时执行 466

17.1.3 用Timer制作秒表 467

17.1.4 启动和重置Timer 469

17.2 图形控件 470

17.2.1 用PictureBox控件显示图片 470

17.2.2 PictureBox显示图片的5种方式 471

17.2.3 更新PictureBox 中的图片 472

17.2.4 用ImageList存储图片 473

17.2.5 哪些控件可用ImageList中的图片 474

17.3 菜单控件 475

17.3.1 用MenuStrip创建菜单 475

17.3.2 有哪些方法添加菜单项 476

17.3.3 为菜单项编写代码完成相应功能 479

17.3.4 用ToolStrip创建工具栏 481

17.3.5 工具栏中可使用的按钮类型 482

17.3.6 设置工具栏的外观和行为 483

17.3.7 设置ToolStripComboBox的自动完成功能 485

17.3.8 设置ToolStrip的外观 486

17.3.9 用ContextMenuStrip创建快捷菜单 486

17.4 本章总结 487

17.5 实战练习 487

第18章 WindowS应用程序的部署(教学视频:22分钟) 489

18.1 你了解这两种部署方案吗 489

18.1.1 什么是ClickOnce部署方案 489

18.1.2 什么是Windows Installer部署方案 490

18.2 ClickOnce部署 490

18.2.1 创建一个部署用的示例程序 490

18.2.2 启动“发布向导”的3种方法 491

18.2.3 设置发布应用程序的3个URL地址 492

18.2.4 为应用程序设置名称 494

18.2.5 设置需发布的非代码文件 494

18.2.6 为应用程序添加下载组 495

18.2.7 设置应用程序的系统必备组件 495

18.2.8 设置安装组件的权限 496

18.2.9 应用程序的3种发布方式 497

18.2.10 将应用程序发布到网站 497

18.2.11 将应用程序发布到共享文件夹 499

18.2.12 将应用程序发布到CD-ROM 500

18.2.13 发布应用程序 501

18.2.14 安装发布的应用程序 503

18.3 Windows Installer部署 504

18.3.1 创建一个部署用的示例程序 504

18.3.2 创建部署项目 505

18.3.3 设置文件安装到目标机器的位置 505

18.3.4 添加项目输出组 506

18.3.5 设置安装后的桌面快捷方式 507

18.3.6 更改安装应用程序的部署特性 508

18.3.7 将应用程序信息添加到注册表 509

18.3.8 安装过程中可使用的对话框 509

18.3.9 “欢迎使用”用户界面对话框 510

18.3.10 “选择安装文件夹”用户界面对话框 511

18.3.11 “确认安装”用户界面对话框 511

18.3.12 “进度”用户界面对话框 512

18.3.13 “安装完成”用户界面对话框 512

18.3.14 安装过程中的自定义默认对话框 513

18.3.15 “单选按钮”用户界面对话框 514

18.3.16 “复选框”用户界面对话框 515

18.3.17 “文本框”用户界面对话框 516

18.3.18 “客户信息”用户界面对话框 517

18.3.19 “许可协议”用户界面对话框 517

18.3.20 “自述文件”用户界面对话框 518

18.3.21 “注册用户”用户界面对话框 518

18.3.22 生成应用程序安装文件 519

18.4 比较两种部署方案 519

18.5 本章总结 520

18.6 实战练习 520

第5篇 C#高级编程技术和工具 522

第19章 异常处理(教学视频:28分钟) 522

19.1 程序运行中的 522

19.2 C#和.NET中的异常处理 524

19.2.1 使用try…catch…finally结构处理异常 524

19.2.2 捕获程序中可能产生的异常 526

19.2.3 用finally语段释放资源 528

19.3 多异常的捕获 530

19.3.1 什么多异常 530

19.3.2 异常的继承关系 533

19.3.3 捕获所有异常的方法 534

19.4 定义用户异常的方法 534

19.5 本章总结 537

19.6 实战练习 537

第20章 文件系统与流(教学视频:45分钟) 538

20.1 软件系统环境相关信息 538

20.1.1 用System.Environment类获得应用程序运行环境的信息 538

20.1.2 System.Environment类的应用举例 538

20.1.3 用Enviroment.GetFolderPath()获得各种Windows标准文件夹的路径 540

20.2 对文件进行操作 542

20.2.1 C#对文件进行操作的类 542

20.2.2 用System.IO.File类的静态方法操作文件 542

20.2.3 用System.IO.FileInfo类的方法操作文件 544

20.3 对文件夹进行操作 545

20.3.1 C#对文件夹操作的类 545

20.3.2 用System.IO.Directory类的静态方法操作文件夹 545

20.3.3 用System.IO.DirectoryInfo类的方法操作文件夹 547

20.4 流文件概述 549

20.4.1 了解流 549

20.4.2 Stream类的常用方法和属性 549

20.5 使用流对文件进行读写 550

20.5.1 使用System.IO.FileStream类进行文件读写 550

20.5.2 用System.IO.FileStream类打开文本文件 551

20.5.3 用BinaryReader和BinaryWriter类读写原始文件 553

20.5.4 用StreamReader和StreamWriter类读写文本文件 554

20.6 序列化和反序列化 554

20.6.1 什么是对象序列化 555

20.6.2 用格式器描述被序列化对象 555

20.6.3 对象序列化使用示例一 555

20.6.4 对象序列化使用示例二 558

20.6.5 对象序列化使用示例三 560

20.7 异步读取数据 562

20.7.1 什么是异步读取数据 562

20.7.2 异步读取数据使用示例 562

20.8 本章总结 564

20.9 实战练习 564

第21章 可扩展标记语言(教学视频:30分钟) 565

21.1 认识XML 565

21.1.1 文档对象模型的功能 566

21.1.2 用XPath查询XML文档 567

21.1.3 了解可扩展样式表语言XSL 567

21.1.4 用XML Schemas设置数据元素和属性 568

21.1.5.NET中处理XML的相关类 568

21.2 使用XML DOM进行编程 569

21.2.1 创建一个空的XML文档 571

21.2.2 向XML文档添加元素 572

21.2.3 更新XML文档中的元素 573

21.2.4 删除XML文档中的元素 576

21.2.5 加载和保存XML文档 577

21.3 用DataSet保存XML数据 577

21.3.1 不使用Schema文件加载XML文档 580

21.3.2 使用Schema文件加载XML文档 582

21.3.3 遍历XML文档 584

21.4 用XPath查找节点 586

21.4.1 XPath简介 586

21.4.2 XPath查询示例代码 586

21.4.3 XPath示例代码讲解 590

21.5 使用XSL将XML文档转化为另一种格式 591

21.5.1 XSL转换示例一 591

21.5.2 XSL转换示例讲解 595

21.5.3 XSL转换示例二 596

21.6 本章总结 597

21.7 实战练习 597

第22章 多线程编程(教学视频:27分钟) 599

22.1 C#线程的主要特征 599

22.1.1 输出不同内容的两个线程 599

22.1.2 调用同一方法的两个线程 600

22.1.3 静态变量在多线程多线程中的应用 601

22.1.4 线程调度 603

22.1.5 线程和进程的关系 603

22.1.6 何时需要使用多线程 603

22.1.7 何时不要使用多线程 604

22.2 创建并开始一个线程 604

22.2.1 用Thread类创建线程 604

22.2.2 向ThreadStart传递参数 605

22.2.3 给线程命名 607

22.2.4 C#的后台线程 607

22.2.5 设置线程优先级 608

22.2.6 线程中的异常处理 608

22.3 线程同步 610

22.3.1 线程同步和协同的可用性工具 610

22.3.2 阻止现在的线程 611

22.3.3 Joining一个线程 612

22.4 线程安全 612

22.4.1 了解线程安全 612

22.4.2 选择一个同步对象 614

22.4.3 使用嵌套锁 615

22.4.4 什么时候上锁合适 615

22.4.5 使用锁的效率考虑 616

22.4.6 线程安全与.NET Framework 617

22.5 用中断和取消提前释放线程 618

22.5.1 中断线程 618

22.5.2 取消线程 619

22.6 线程有哪些状态 619

22.7 等待处理 620

22.7.1 了解自动设置方法 621

22.7.2 自动设置方法示例一 621

22.7.3 自动设置方法示例二 622

22.7.4 自动设置方法示例三 623

22.7.5 ManualResetEvent类控制多个线程 625

22.7.6 跨线程的互斥量 626

22.7.7 使用信号量 626

22.7.8 使用WaitAny、WaitAll和SignalAndWait方法 627

22.8 同步性作用域 628

22.9 套间线程 630

22.9.1 什么是套间线程 630

22.9.2 使用套间模型 631

22.9.3 用Control.Invoke方法进行跨线程调用 631

22.10 管理工作线程的BackgroundWorker组件 631

22.10.1 BackgroundWorker的特征 632

22.10.2 BackgroundWorker组件编程示例 632

22.10.3 BackgroundWorker组件编程示例二 633

22.10.4 BackgroundWorker组件编程示例三 635

22.11 用于读/写操作的锁 636

22.11.1 了解读/写操作的锁 636

22.11.2 管理资源访问锁定状态类ReaderWriterLockSlim 637

22.11.3 读/写操作锁的进一步说明 638

22.12 用线程池管理线程 639

22.13 用异步代理得到线程返回的数据 641

22.14.NET提供的计时器 642

22.15 各线程数据的局部存储 644

22.16 本章总结 644

22.17 实战练习 645

第6篇 Web数据库开发 648

第23章 数据库基础知识(教学视频:15分钟) 648

23.1 了解SQL Server 648

23.2 操作MSSQL数据表 649

23.2.1 在数据库中创建、修改和删除表 650

23.2.2 向表中插入、修改、删除和检索数据 650

23.2.3 设置表的主键约束 653

23.2.4 设置表的外键约束 654

23.2.5 设置表的唯一性约束 654

23.2.6 设置表的CHECK约束 655

23.2.7 设置列的默认约束 655

23.3 数据库的存储过程 655

23.3.1 创建存储过程的SQL语句 656

23.3.2 执行和删除存储过程的SQL语句 657

23.3.3 用SQL Server Management Studio管理存储过程 657

23.4 数据库中的触发器 659

23.4.1 创建和使用触发器的SQL语句 659

23.4.2 用SQL Server Management Studio管理触发器 660

23.5 本章总结 661

23.6 实战练习 661

第24章 ADO.NET数据库编程(教学视频:32分钟) 662

24.1 ADO.NET介绍 662

24.1.1 ADO.NET是神马 662

24.1.2 ADO.NET相关的类和接口 663

24.2 DataSet和DataTable类 664

24.2.1 表示内存数据表的DataTable类 664

24.2.2 创建DataTable的方法 666

24.2.3 遍历DataTable中保存的记录 669

24.2.4 接受和回滚DataTable的更改 670

24.2.5 表示内存数据集合的DataSet类 673

24.2.6 使用DataSet类的步骤 675

24.2.7 接受和回滚DataSet的更改 679

24.3 用ADO.NET访问SQL Server数据库 680

24.3.1 ADO.NET访问数据库的步骤 680

24.3.2 用SqlConnection连接数据库 681

24.3.3 用SqlCommand执行SQL命令 684

24.3.4 用SqlDataReader读取数据库记录 687

24.3.5 用SqlDataAdapter获取数据库记录 689

24.3.6 用SqlDataAdapter更改数据库记录 692

24.4 用ADO.NET访问Access数据库 694

24.4.1 System.Data.OleDb命名空间提供的功能 694

24.4.2 访问Access数据库的各种类 695

24.5 使用数据库访问控件 696

24.5.1 用DataGridView控件管理数据库中的记录 696

24.5.2 用BindingNavigator控件导航记录 699

24.6 本章总结 700

24.7 实战练习 700

第25章 ASP.NET技术入门(教学视频:24分钟) 702

25.1 初识ASP.NET 702

25.1.1 了解ASP.NET 702

25.1.2 System.Web常用的类 703

25.1.3 创建一个Web应用程序 703

25.2 用ASP.NET控件创建网页 706

25.2.1 用TextBox控件显示文本框 706

25.2.2 用Button控件显示按钮 707

25.2.3 用HyperLink控件显示超链接 709

25.2.4 用DropDownList、ListBox等显示下拉列表、列表 709

25.2.5 用Menu控件显示导航菜单 711

25.3 留言板网站实例 713

25.3.1 数据库和页面设计 713

25.3.2 设计欢迎页面 714

25.3.3 设计添加留言页面 715

25.3.4 设计查看留言页面 718

25.3.5 发布留言板网站 721

25.4 本章总结 723

25.5 实战练习 724

第26章 服务器端控件详解(教学视频:24分钟) 725

26.1 认识服务器控件 725

26.1.1 为什么使用服务器控件 725

26.1.2 服务器控件与HTML控件的区别 725

26.2 数据操作控件 726

26.2.1 SqlDataSource的作用 726

26.2.2 用SqlDataSource控件连接到数据库 727

26.2.3 用GridView控件显示数据 732

26.2.4 用DetailsView控件显示指定记录 735

26.3 用验证控件检查用户输入 739

26.3.1 必填内容的验证控件RequiredFieldValidator 739

26.3.2 比较两个值的验证控件CompareValidator 740

26.3.3 检查指定范围的验证控件RangeValidator 743

26.3.4 正则表达式验证控件RegularExpressionValidator 743

26.3.5 自定义验证控件CustomValidator 744

26.3.6 验证错误信息汇总控件ValidationSummary 747

26.4 创建ASP.NET用户控件 748

26.5 本章总结 751

26.6 实战练习 751

第7篇 .NET 4.0的增强功能 754

第27章 WPF框架(教学视频:19分钟) 754

27.1 WPF基础 754

27.1.1 了解WPF基础架构 754

27.1.2 与WPF相关的技术 755

27.2 创建WPF应用程序 756

27.2.1 创建WPF的过程 756

27.2.2 完整的WPF应用程序实例 759

27.2.3 创建WPF浏览器应用程序 761

27.3 简单WPF实例 763

27.3.1 用ListBox控件实现列表显示 763

27.3.2 用Hyperlink控件实现多页面切换 767

27.3.3 用DockPanel沿容器边缘定位 768

27.3.4 使用StackPanel叠放包含的控件 770

27.3.5 使用数据源集合实现多数据绑定 771

27.3.6 属性变更引起依赖数据绑定变化 774

27.3.7 使用Brush填充图形 778

27.3.8 使用Storyboard实现动画 783

27.3.9 使用Storyboard实现控件的翻转 785

27.4 本章总结 787

27.5 实战练习 787

第28章 WCF框架(教学视频:22分钟) 788

28.1 WCF基础 788

28.1.1 了解WCF架构 788

28.1.2 了解WCF模型 789

28.2 WCF服务和客户端实例 790

28.2.1 创建WCF服务承载项目 790

28.2.2 定义WCF服务协定 790

28.2.3 定义实现WCF服务接口的类 792

28.2.4 运行WCF服务的相关代码 793

28.2.5 创建WCF客户端程序 795

28.2.6 配置WCF客户端的配置 795

28.2.7 WCF客户端对服务端的调用 797

28.3 主要的WCF技术 799

28.3.1 使用会话在客户端与服务间交互 799

28.3.2 WCF事务管理模型 800

28.4 本章总结 801

28.5 实战练习 802

第29章 Windows WF框架(教学视频:40分钟) 803

29.1 C#的工作流开发框架 803

29.1.1 了解WF框架 803

29.1.2 WF框架中的重要元素 804

29.2 开发WF工作流应用程序 805

29.2.1 第一个WF应用程序 805

29.2.2 WF工作流的基本元素:WF活动 810

29.2.3 自定义的代码活动 815

29.2.4 WF提供的服务 818

29.3 WF创建工作流实例 819

29.3.1 在工作流中使用集合 819

29.3.2 猜价格游戏 823

29.4 本章总结 828

29.5 实战练习 828

第30章 语言集成查询LINQ(教学视频:25分钟) 829

30.1 LINQ概述 829

30.1.1 了解LINQ查询 829

30.1.2 简单LINQ查询实例 830

30.2 LINQ语言基础 830

30.2.1 最重要的LINQ查询表达式 831

30.2.2 LINQ查询语法和方法语法实例 833

30.2.3 用LINQ合并数据 835

30.2.4 用LINQ转换数据 837

30.3 LINQ查询数据源 838

30.3.1 用LINQ To SQL查询数据库中的数据 838

30.3.2 用LINQ To DataSet查询缓存在DataSet中的数据 842

30.3.3 用LINQ To XML查询XML中的数据 843

30.3.4 用LINQ To Objects查询可枚举的集合 844

30.4 本章总结 846

30.5 实战练习 846

第8篇 综合案例 848

第31章 用MVC开发音乐商店网站 848

31.1 开发站点前的配置 848

31.1.1 预览音乐商店网站 848

31.1.2 系统架构总览 851

31.1.3 系统数据库设计 852

31.1.4 系统文件目录结构 854

31.1.5 创建母版页和CSS文件 856

31.1.6 使用Entity Framework创建实体模型 858

31.2 音乐专辑列表实现 860

31.2.1 首页控制器实现 860

31.2.2 创建首页视图 861

31.2.3 浏览音乐流派 862

31.2.4 浏览音乐明细信息 865

31.3 管理音乐列表 866

31.3.1 基于角色的身份验证 867

31.3.2 编辑音乐信息 870

31.3.3 基于模型的数据验证 875

31.4 实现和管理购物车 876

31.4.1 添加到购物车功能 876

31.4.2 从购物车中移除功能 879

31.4.3 提交购物车 880

31.5 关键技术讲解 885

31.6 本章总结 885

31.7 实战练习 885

第32章 电子购物商城 886

32.1 系统总体设计 886

32.1.1 系统功能描述 886

32.1.2 WebShopping应用程序组成 888

32.1.3 保存数据需要哪些表 890

32.1.4 设计数据库表之间关系设计 893

32.2 系统通用类和模块设计 894

32.2.1 编写系统常量和枚举代码 894

32.2.2 编写系统常用操作的代码 895

32.2.3 设计显示标题的用户控件 896

32.2.4 设计分页用户控件 897

32.2.5 创建级联样式表web.css文件 902

32.2.6 设计主题文件 902

32.2.7 在Web.config中设置数据库连接字符串 903

32.2.8 创建数据库对象模型 904

32.3 电子购物商城首页 907

32.3.1 设计首页界面 907

32.3.2 设计全站搜索的用户控件 911

32.3.3 设计登录网站的用户控件 912

32.3.4 设计显示新闻的用户控件 914

32.3.5 设计显示公告的用户控件 916

32.4 用户注册和登录 917

32.4.1 用户必须先注册 918

32.4.2 显示提交的用户信息 922

32.4.3 处理用户登录 925

32.4.4 退出系统时要做的操作 928

32.5 浏览商品、购物车和订单 928

32.5.1 查看商品信息 929

32.5.2 对商品进行评论 932

32.5.3 购物车功能 936

32.5.4 将商品加入购物车 937

32.5.5 查看购物车内容 940

32.5.6 生成订单编号的代码 944

32.5.7 生成购物订单 945

32.5.8 发布留言 950

32.6 商品搜索 952

32.6.1 按商品名称搜索 953

32.6.2 更复杂的高级搜索 956

32.7 用户信息中心 960

32.7.1 管理用户的首页 960

32.7.2 根据角色动态加载操作菜单 962

32.7.3 查看个人信息 965

32.7.4 修改个人信息 967

32.7.5 修改密码 971

32.7.6 管理我的订单 974

32.8 商品及其分类管理 978

32.8.1 查看已有商品分类列表 978

32.8.2 动态加载商品分类层次结构的代码 983

32.8.3 添加新的商品分类 984

32.8.4 修改已有商品分类 987

32.8.5 查看已有商品列表 990

32.8.6 动态加载商品分类层次树的代码 997

32.8.7 添加新的商品 999

32.8.8 修改已有商品 1003

32.8.9 商品图片管理 1007

32.8.10 显示商品图片 1012

32.8.1 1商品评论列表 1013

32.9 系统信息中心 1018

32.9.1 查看已有新闻列表 1018

32.9.2 发布新的新闻 1023

32.9.3 修改己发布新闻 1025

32.9.4 发布公告 1029

32.9.5 管理用户留言 1032

32.10 系统用户和角色管理 1035

32.10.1 查看已有角色列表 1036

32.10.2 添加新的角色 1040

32.10.3 修改已有角色 1042

32.10.4 管理注册用户 1045

32.10.5 添加管理员 1049

32.11 本章总结 1053

32.12 实战练习 1053