图书目录

目 录

第Ⅰ部分 C# 语 言

第1 章 C#简介 3

1.1 .NET Framework 的含义 3

1.1.1 .NET Framework 的内容 4

1.1.2 使用.NET Framework 编写应用程序 4

1.2 C#的含义7

1.2.1 用C#能编写什么样的应用程序 7

1.2.2 本书中的C#  8

1.3 Visual Studio 2012  8

1.3.1 Visual Studio Express 2012产品 9

1.3.2 解决方案 9

1.4 小结 9

1.5 本章要点 10

第2 章 编写C#程序 11

2.1 Visual Studio 2012 开发环境 12

2.2 控制台应用程序 14

2.2.1 Solution Explorer 窗口 17

2.2.2 Properties 窗口 18

2.2.3 Error List 窗口 18

2.3 桌面应用程序 19

2.4 小结 22

2.5 本章要点 22

第3 章 变量和表达式 23

3.1 C#的基本语法 24

3.2 C#控制台应用程序的基本结构 26

3.3 变量 27

3.3.1 简单类型 28

3.3.2 变量的命名 31

3.3.3 字面值 33

3.3.4 变量的声明和赋值 34

3.4 表达式 35

3.4.1 数学运算符 35

3.4.2 赋值运算符 39

3.4.3 运算符的优先级 39

3.4.4 名称空间 40

3.5 小结 43

3.6 练习 43

3.7 本章要点 44

第4 章 流程控制 45

4.1 布尔逻辑 45

4.1.1 布尔赋值运算符 48

4.1.2 按位运算符 49

4.1.3 运算符优先级的更新 52

4.2 goto 语句 53

4.3 分支 54

4.3.1 三元运算符 54

4.3.2 if 语句 55

4.3.3 switch 语句 58

4.4 循环 61

4.4.1 do 循环 62

4.4.2 while 循环 64

4.4.3 for 循环 66

4.4.4 循环的中断 70

4.4.5 无限循环 71

4.5 小结 72

4.6 练习 72

4.7 本章要点 73

第5 章 变量的更多内容 75

5.1 类型转换 75

5.1.1 隐式转换 76

5.1.2 显式转换 77

5.1.3 使用Convert 命令进行显式转换 80

5.2 复杂的变量类型 83

5.2.1 枚举  83

5.2.2 结构  87

5.2.3 数组 89

5.3 字符串的处理 95

5.4 小结 100

5.5 练习 100

5.6 本章要点 101

第6 章 函数 103

6.1 定义和使用函数 104

6.1.1 返回值 105

6.1.2 参数 107

6.2 变量的作用域  114

6.2.1 其他结构中变量的作用域  116

6.2.2 参数和返回值与全局数据  118

6.3 Main()函数 119

6.4 结构函数  121

6.5 函数的重载  122

6.6 委托  124

6.7 小结  127

6.8 练习  127

6.9 本章要点  128

第7 章 调试和错误处理 129

7.1 Visual Studio 中的调试 130

7.1.1 非中断(正常)模式下的调试 130

7.1.2 中断模式下的调试  138

7.2 错误处理  145

7.2.1 try.catch.finally  146

7.2.2 列出和配置异常 150

7.2.3 异常处理的注意事项  151

7.3 小结  152

7.4 练习  152

7.5 本章要点  152

第8 章 面向对象编程简介 155

8.1 面向对象编程的含义  156

8.1.1 对象的含义  156

8.1.2 一切皆对象  159

8.1.3 对象的生命周期  159

8.1.4 静态和实例类成员  160

8.2 OOP 技术  161

8.2.1 接口  161

8.2.2 继承  163

8.2.3 多态性  164

8.2.4 对象之间的关系  166

8.2.5 运算符重载  167

8.2.6 事件  167

8.2.7 引用类型和值类型  168

8.3 桌面应用程序中的OOP  168

8.4 小结  171

8.5 练习 172

8.6 本章要点 173

第9 章 定义类  175

9.1 C#中的类定义 175

9.2 System.Object 180

9.3 构造函数和析构函数 182

9.4 Visual Studio 中的OOP 工具186

9.4.1 Class View 窗口  186

9.4.2 对象浏览器  187

9.4.3 添加类  188

9.4.4 类图  189

9.5 类库项目  190

9.6 接口和抽象类  193

9.7 结构类型  195

9.8 浅度和深度复制  197

9.9 小结  198

9.10 练习 198

9.11 本章要点  199

第10 章 定义类成员 201

10.1 成员定义  201

10.1.1 定义字段  202

10.1.2 定义方法  202

10.1.3 定义属性  203

10.1.4 在类图中添加成员  208

10.1.5 重构成员  211

10.1.6 自动属性  212

10.2 类成员的其他主题  212

10.2.1 隐藏基类方法  212

10.2.2 调用重写或隐藏的基类方法  214

10.2.3 嵌套的类型定义  215

10.3 接口的实现 217

10.4 部分类定义  221

10.5 部分方法定义 222

10.6 示例应用程序 224

10.6.1 规划应用程序 224

10.6.2 编写类库 224

10.6.3 类库的客户应用程序 231

10.7 Call Hierarchy窗口  232

10.8 小结  233

10.9 练习  233

10.10 本章要点  234

第11 章 集合、比较和转换 235

11.1 集合  236

11.1.1 使用集合 236

11.1.2 定义集合 242

11.1.3 索引符  243

11.1.4 给CardLib 添加Cards 集合  245

11.1.5 键控集合和IDictionary   248

11.1.6 迭代器  250

11.1.7 迭代器和集合  254

11.1.8 深度复制  254

11.1.9 给CardLib添加深度复制  257

11.2 比较  258

11.2.1 类型比较  258

11.2.2 值比较  263

11.3 转换  278

11.3.1 重载转换运算符  278

11.3.2 as运算符 279

11.4 小结 280

11.5 练习 281

11.6 本章要点 282

第12 章 泛型  283

12.1 泛型的概念 284

12.2 使用泛型 285

12.2.1 可空类型 285

12.2.2 System.Collections.Generic名称空间  292

12.3 定义泛型类型 301

12.3.1 定义泛型类  302

12.3.2 定义泛型接口 313

12.3.3 定义泛型方法 313

12.3.4 定义泛型委托 315

12.4 变体  315

12.4.1 协变  316

12.4.2 抗变  317

12.5 小结  317

12.6 练习 318

12.7 本章要点 319

第13 章 其他OOP 技术  321

13.1 ::运算符和全局名称空间限定符  321

13.2 定制异常  323

13.3 事件 325

13.3.1 事件的含义  325

13.3.2 处理事件 326

13.3.3 定义事件 328

13.4 扩展和使用CardLib 336

13.5 特性  344

13.5.1 读取特性 344

13.5.2 创建特性 345

13.6 小结  346

13.7 练习  347

13.8 本章要点  347

第14 章 C#语言的改进 349

14.1 初始化器  350

14.1.1 对象初始化器 350

14.1.2 集合初始化器 352

14.2 类型推理  355

14.3 匿名类型  356

14.4 动态查找  360

14.4.1 动态类型  361

14.4.2 IDynamicMetaObject-Provider 364

14.5 高级方法参数 365

14.5.1 可选参数 365

14.5.2 命名参数 367

14.5.3 命名参数和可选参数的规则 371

14.6 扩展方法  371

14.7 Lambda 表达式 375

14.7.1 复习匿名方法 375

14.7.2 把Lambda 表达式用于匿名方法 376

14.7.3 Lambda 表达式的参数 379

14.7.4 Lambda 表达式的语句体  380

14.7.5 Lambda 表达式用作委托和表达式树 381

14.7.6 Lambda 表达式和集合 381

14.8 调用方信息特性 384

14.9 小结  386

14.10 练习  387

14.11 本章要点  388

第15 章 基本桌面编程 393

15.1 XAML  394

15.1.1 关注点分离  394

15.1.2 XAML 基础知识  395

15.2 动手实践  396

15.2.1 WPF 控件  397

15.2.2 属性  398

15.2.3 事件  401

15.3 控件布局  405

15.3.1 堆叠顺序  406

15.3.2 对齐、边距、填充和尺寸  406

15.3.3 Border 控件  407

15.3.4 Canvas 控件  407

15.3.5 DockPanel 控件  408

15.3.6 StackPanel 控件  410

15.3.7 Grid 控件 412

15.4 游戏客户端 414

15.4.1 About 窗口 414

15.4.2 Options窗口 419

15.4.3 数据绑定 427

15.4.4 启动游戏 433

15.5 小结 436

15.6 练习 437

15.7 本章要点 437

第16 章 高级桌面编程 439

16.1 主窗口 439

16.1.1 菜单控件 440

16.1.2 路由命令和菜单  440

16.2 创建控件并设置样式 443

16.2.1 样式  444

16.2.2 模板  444

16.2.3 值转换器 448

16.2.4 触发器 450

16.2.5 动画  451

16.3 WPF 用户控件 453

16.4 把所有内容结合起来 462

16.4.1 重构域模型  463

16.4.2 视图模型 467

16.4.3 大功告成 475

16.5 小结 483

16.6 练习 484

16.7 本章要点 484

第17 章 Windows Store 应用程序 485

17.1 入门 485

17.2 Windows Store 应用程序与桌面应用程序 487

17.3 开发Windows Store应用程序  488

17.3.1 视图模式 488

17.3.2 磁贴和锁屏提醒 492

17.3.3 应用程序的生存期  492

17.4 应用程序的开发 492

17.4.1 WPF 与Windows Store应用程序的XAML 差异  493

17.4.2 模板和页面  494

17.4.3 沙箱应用程序 495

17.4.4 在页面之间导航 500

17.4.5 管理状态 503

17.5 修改KarliCards 游戏(第1 部分)  503

17.5.1 创建CardLib 项目 503

17.5.2 可视化方面的修改  511

17.5.3 转换用户控件 511

17.6 Windows Store 应用程序中的常见元素 518

17.6.1 AppBar 控件 518

17.6.2 设置面板 520

17.6.3 磁贴、锁屏提醒以及初始屏幕 523

17.7 修改KarliCards 游戏(第2 部分) 524

17.8 Windows 应用商店529

17.9 小结 530

17.10 练习 530

17.11 本章要点 531

第18 章 部署桌面应用程序 533

18.1 部署概述 534

18.2 ClickOnce 部署 534

18.2.1 实现ClickOnce 部署  535

18.2.2 用ClickOnce 安装应用程序 541

18.2.3 创建和使用应用程序的更新包  542

18.3 InstallShield Limited Edition 543

18.4 小结 549

18.5 练习 549

18.6 本章要点 549

第Ⅲ部分 Web 编 程

第19 章 ASP.NET Web 编程  553

19.1 Web 应用程序概述 554

19.2 ASP.NET 运行库 554

19.3 创建简单的Web页面 555

19.4 服务器控件.562

19.5 ASP.NET 回送 563

19.6 ASP.NET AJAX 回送 568

19.7 输入的有效性验证 571

19.8 状态管理 575

19.8.1 客户端的状态管理  576

19.8.2 服务器端的状态管理  578

19.9 样式 581

19.10 母版页 585

19.11 站点导航 589

19.12 身份验证和授权 592

19.12.1 身份验证的配置  593

19.12.2 使用安全控件 596

19.13 读写SQL Server数据库598

19.14 小结  607

19.15 练习  607

19.16 本章要点  607

第20 章 部署Web 应用程序 609

20.1 Internet Information Services 609

20.2 IIS 配置  611

20.3 复制Web 站点  612

20.4 发布Web 站点  615

20.5 小结 617

20.6 练习 618

20.7 本章要点 618

第Ⅳ部分 数 据 访 问

第21 章 文件系统数据621

21.1 流 621

21.2 用于输入和输出的类 622

21.2.1 File 类和Directory 类 623

21.2.2 FileInfo 类  624

21.2.3 DirectoryInfo类  625

21.2.4 路径名和相对路径  626

21.2.5 FileStream对象 626

21.2.6 StreamWriter对象 632

21.2.7 StreamReader对象  634

21.2.8 异步文件访问  641

21.2.9 读写压缩文件  641

21.3 序列化对象  644

21.4 监控文件系统  648

21.5 小结  653

21.6 练习  653

21.7 本章要点  654

第22 章 XML  655

22.1 XML 文档  656

22.1.1 XML 元素  656

22.1.2 特性  657

22.1.3 XML 声明  657

22.1.4 XML 文档的结构 658

22.1.5 XML 名称空间 658

22.1.6 格式良好并有效的XML  659

22.1.7 验证XML 文档 660

22.2 在应用程序中使用XML.663

22.2.1 XML 文档对象模型 663

22.2.2 选择节点 673

22.2.3 XPath  673

22.3 小结.677

22.4 练习.677

22.5 本章要点.678

第23 章 LINQ 简介 679

23.1 第一个LINQ 查询680

23.1.1 用var 关键字声明

结果变量 681

23.1.2 指定数据源:from 子句 682

23.1.3 指定条件:where 子句 682

23.1.4 选择元素:select 子句 682

23.1.5 完成:使用foreach 循环 683

23.1.6 延迟执行的查询 683

23.2 使用LINQ 方法语法.683

23.2.1 LINQ 扩展方法 683

23.2.2 查询语法和方法语法 684

23.3 排序查询结果685

23.4 orderby 子句687

23.5 用方法语法排序687

23.6 查询大型数据集689

23.7 聚合运算符.691

23.8 查询复杂的对象694

23.9 投影:在查询中创建新对象698

23.10 投影:方法语法700

23.11 单值选择查询700

23.12 Any()和All()方法701

23.13 多级排序.703

23.14 多级排序方法语法:ThenBy 705

23.15 组合查询.705

23.16 Take()和Skip()方法 707

23.17 First()和FirstOrDefault()方法 709

23.18 LINQ 集运算符 710

23.19 Join 查询 713

23.20 小结 714

23.21 练习 714

23.22 本章要点 715

第24 章 应用LINQ717

24.1 LINQ 的变体 717

24.2 给数据库使用LINQ 718

24.3 安装SQL Server 和Northwind 示例数据 718

24.3.1 安装SQL Server Express .719

24.3.2 安装Northwind 示例数据库719

24.4 第一个LINQ 数据库查询 719

24.5 浏览数据库关系 723

24.6 使用LINQ to XML  725

24.7 LINQ to XML 函数构造方式 725

24.8 保存和加载XML 文档 729

24.8.1 从字符串中加载XML  732

24.8.2 已保存的XML文档内容 732

24.9 处理XML 片段 732

24.10 从数据库中生成XML  734

24.11 查询XML 文档的方法 737

24.12 使用LINQ to XML查询成员 738

24.12.1 Elements()  738

24.12.2 Descendants()  739

24.12.3 Attributes()  741

24.13 小结 743

24.14 练习 743

24.15 本章要点 744

第Ⅴ部分 其 他 技 术

第25 章 Windows Communication Foundation  747

25.1 WCF 的含义748

25.2 WCF 概念748

25.2.1 WCF 通信协议 749

25.2.2 地址、端点和绑定 750

25.2.3 协定 751

25.2.4 消息模式 752

25.2.5 行为 752

25.2.6 驻留 752

25.3 WCF 编程753

25.3.1 WCF 测试客户端程序 759

25.3.2 定义WCF 服务协定 762

25.3.3 自驻留的WCF 服务 769

25.4 小结 776

25.5 练习 776

25.6 本章要点 777

第26 章 Windows Workflow Foundation  779

26.1 Hello World  779

26.2 工作流和活动781

26.2.1 If 活动 781

26.2.2 While 活动  782

26.2.3 Sequence 活动 782

26.3 实参和变量 783

26.4 定制活动 788

26.4.1 工作流扩展 790

26.4.2 活动的有效性验证 795

26.4.3 活动设计器 796

26.5 小结 798

26.6 练习 798

26.7 本章要点 799

附录A 习题答案 801