第Ⅰ部分 OOP语言 3
第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#能编写什么样的应用程序 8
1.2.2 本书中的C# 8
1.3 Visual Studio 2015 8
1.3.1 Visual Studio Express 2015产品 9
1.3.2 解决方案 9
1.4 本章要点 9
第2章 编写C#程序 11
2.1 Visual Studio 2015开发环境 12
2.2 控制台应用程序 14
2.2.1 Solution Explorer窗口 16
2.2.2 Properties窗口 18
2.2.3 Error List窗口 18
2.3 桌面应用程序 19
2.4 本章要点 22
第3章 变量和表达式 23
3.1 C#的基本语法 24
3.2 C#控制台应用程序的基本结构 26
3.3 变量 27
3.3.1 简单类型 27
3.3.2 变量的命名 31
3.3.3 字面值 31
3.4 表达式 33
3.4.1 数学运算符 33
3.4.2 赋值运算符 37
3.4.3 运算符的优先级 38
3.4.4 名称空间 39
3.5 练习 40
3.6 本章要点 41
第4章 流程控制 43
4.1 布尔逻辑 43
4.1.1 布尔按位运算符和赋值运算符 45
4.1.2 运算符优先级的更新 47
4.2 分支 47
4.2.1 三元运算符 48
4.2.2 if语句 48
4.2.3 switch语句 51
4.3 循环 54
4.3.1 do循环 54
4.3.2 while循环 57
4.3.3 for循环 58
4.3.4 循环的中断 59
4.3.5 无限循环 60
4.4 练习 61
4.5 本章要点 61
第5章 变量的更多内容 63
5.1 类型转换 63
5.1.1 隐式转换 64
5.1.2 显式转换 65
5.1.3 使用Convert命令进行显式转换 68
5.2 复杂的变量类型 69
5.2.1 枚举 69
5.2.2 结构 73
5.2.3 数组 76
5.3 字符串的处理 82
5.4 练习 86
5.5 本章要点 87
第6章 函数 89
6.1 定义和使用函数 90
6.1.1 返回值 91
6.1.2 参数 93
6.2 变量的作用域 99
6.2.1 其他结构中变量的作用域 102
6.2.2 参数和返回值与全局数据 103
6.3 Main()函数 104
6.4 结构函数 106
6.5 函数的重载 107
6.6 委托 109
6.7 练习 111
6.8 本章要点 112
第7章 调试和错误处理 113
7.1 Visual Studio中的调试 114
7.1.1 非中断(正常)模式下的调试 114
7.1.2 中断模式下的调试 121
7.2 错误处理 127
7.2.1 try...catch...finally 128
7.2.2 列出和配置异常 133
7.3 练习 134
7.4 本章要点 134
第8章 面向对象编程简介 137
8.1 面向对象编程的含义 137
8.1.1 对象的含义 138
8.1.2 一切皆对象 141
8.1.3 对象的生命周期 141
8.1.4 静态成员和实例类成员 142
8.2 OOP技术 143
8.2.1 接口 143
8.2.2 继承 144
8.2.3 多态性 146
8.2.4 对象之间的关系 148
8.2.5 运算符重载 149
8.2.6 事件 149
8.2.7 引用类型和值类型 150
8.3 桌面应用程序中的OOP 150
8.4 练习 153
8.5 本章要点 154
第9章 定义类 155
9.1 C#中的类定义 155
9.2 System.Object 160
9.3 构造函数和析构函数 161
9.4 Visual Studio中的OOP工具 166
9.4.1 Class View窗口 166
9.4.2 对象浏览器 167
9.4.3 添加类 169
9.4.4 类图 169
9.5 类库项目 171
9.6 接口和抽象类 174
9.7 结构类型 176
9.8 浅度和深度复制 177
9.9 练习 178
9.10 本章要点 178
第10章 定义类成员 181
10.1 成员定义 181
10.1.1 定义字段 182
10.1.2 定义方法 182
10.1.3 定义属性 183
10.1.4 重构成员 188
10.1.5 自动属性 189
10.2 类成员的其他主题 190
10.2.1 隐藏基类方法 190
10.2.2 调用重写或隐藏的基类方法 192
10.2.3 嵌套的类型定义 193
10.3 接口的实现 195
10.4 部分类定义 198
10.5 部分方法定义 199
10.6 示例应用程序 200
10.6.1 规划应用程序 201
10.6.2 编写类库 201
10.6.3 类库的客户应用程序 208
10.7 Call Hierarchy窗口 209
10.8 练习 210
10.9 本章要点 210
第11章 集合、比较和转换 211
11.1 集合 212
11.1.1 使用集合 212
11.1.2 定义集合 218
11.1.3 索引符 219
11.1.4 给CardLib添加Cards集合 221
11.1.5 键控集合和IDictionary 224
11.1.6 迭代器 225
11.1.7 迭代器和集合 229
11.1.8 深度复制 230
11.1.9 给CardLib添加深度复制 232
11.2 比较 234
11.2.1 类型比较 234
11.2.2 值比较 238
11.3 转换 254
11.3.1 重载转换运算符 254
11.3.2 as运算符 255
11.4 练习 256
11.5 本章要点 257
第12章 泛型 259
12.1 泛型的含义 259
12.2 使用泛型 261
12.2.1 可空类型 261
12.2.2 System.Collections.Generic名称空间 268
12.3 定义泛型类型 278
12.3.1 定义泛型类 278
12.3.2 定义泛型接口 289
12.3.3 定义泛型方法 289
12.3.4 定义泛型委托 291
12.4 变体 291
12.4.1 协变 292
12.4.2 抗变 292
12.5 练习 293
12.6 本章要点 294
第13章 高级C#技术 297
13.1 ::运算符和全局名称空间限定符 298
13.2 定制异常 299
13.3 事件 301
13.3.1 事件的含义 301
13.3.2 处理事件 302
13.3.3 定义事件 305
13.4 扩展和使用CardLib 312
13.5 特性 320
13.5.1 读取特性 321
13.5.2 创建特性 322
13.6 初始化器 323
13.6.1 对象初始化器 323
13.6.2 集合初始化器 325
13.7 类型推理 329
13.8 匿名类型 330
13.9 动态查找 334
13.10 高级方法参数 338
13.10.1 可选参数 339
13.10.2 命名参数 340
13.11 Lambda表达式 344
13.11.1 复习匿名方法 344
13.11.2 把Lambda表达式用于匿名方法 345
13.11.3 Lambda表达式的参数 349
13.11.4 Lambda表达式的语句体 349
13.11.5 Lambda表达式用作委托和表达式树 350
13.11.6 Lambda表达式和集合 351
13.12 练习 354
13.13 本章要点 355
第Ⅱ部分 Windows编程 359
第14章 基本桌面编程 359
14.1 XAML 360
14.1.1 关注点分离 360
14.1.2 XAML基础知识 360
14.2 动手实践 363
14.2.1 WPF控件 363
14.2.2 属性 364
14.2.3 事件 368
14.3 控件布局 372
14.3.1 堆叠顺序 373
14.3.2 对齐、边距、填充和尺寸 373
14.3.3 Border控件 374
14.3.4 Canvas控件 374
14.3.5 DockPanel控件 375
14.3.6 StackPanel控件 377
14.3.7 WrapPanel控件 378
14.3.8 Grid控件 379
14.4 游戏客户端 381
14.4.1 About窗口 382
14.4.2 Options窗口 386
14.4.3 数据绑定 394
14.4.4 使用ListBox控件启动游戏 399
14.5 练习 403
14.6 本章要点 403
第15章 高级桌面编程 405
15.1 主窗口 405
15.1.1 菜单控件 406
15.1.2 路由命令和菜单 406
15.2 创建控件并设置样式 410
15.2.1 样式 410
15.2.2 模板 411
15.2.3 值转换器 415
15.2.4 触发器 416
15.2.5 动画 418
15.3 WPF用户控件 420
15.4 把所有内容结合起来 430
15.4.1 重构域模型 431
15.4.2 视图模型 436
15.4.3 大功告成 444
15.5 练习 453
15.6 本章要点 453
第Ⅲ部分 云编程 457
第16章 基本的云编程 457
16.1 云、云编程和云优化堆栈 458
16.2 云模式和最佳实践 460
16.3 使用Microsoft Azure C#库创建存储容器 461
16.4 创建使用存储容器的ASP.NET 4.6 网站 471
16.5 练习 478
16.6 本章要点 478
第17章 高级云编程和部署 479
17.1 创建ASP.NET Web API 480
17.2 在Microsoft Azure上部署和使用ASP.NET Web API 483
17.3 扩展Microsoft Azure平台上的ASP.NET Web API 490
17.4 练习 493
17.5 本章要点 493
第Ⅳ部分 数据访问 497
第18章 文件 497
18.1 用于输入和输出的类 497
18.1.1 File类和Directory类 498
18.1.2 FileInfo类 499
18.1.3 DirectoryInfo类 500
18.1.4 路径名和相对路径 501
18.2 流 501
18.2.1 使用流的类 501
18.2.2 FileStream对象 502
18.2.3 StreamWriter对象 508
18.2.4 StreamReader对象 510
18.2.5 异步文件访问 513
18.2.6 读写压缩文件 513
18.3 监控文件系统 516
18.4 练习 521
18.5 本章要点 521
第19章 XML和JSON 523
19.1 XML基础 523
19.2 JSON基础 524
19.3 XML模式 525
19.4 XML文档对象模型 526
19.4.1 XmlDocument类 527
19.4.2 XmlElement类 528
19.4.3 修改节点的值 531
19.5 把XML转换为JSON 536
19.6 用XPath搜索XML 537
19.7 练习 541
19.8 本章要点 542
第20章 LINQ 543
20.1 使用LINQ to XML 544
20.1.1 LINQ to XML函数构造方式 544
20.1.2 处理XML片段 547
20.2 LINQ提供程序 549
20.3 LINQ查询语法 550
20.3.1 用var关键字声明结果变量 552
20.3.2 指定数据源:from子句 552
20.3.3 指定条件:where子句 553
20.3.4 选择元素:select子句 553
20.3.5 完成:使用foreach循环 553
20.3.6 延迟执行的查询 553
20.4 LINQ方法语法 554
20.4.1 LINQ扩展方法 554
20.4.2 查询语法和方法语法 554
20.4.3 Lambda表达式 555
20.5 排序查询结果 557
20.6 orderby子句 558
20.7 查询大型数据集 559
20.8 使用聚合运算符 561
20.9 单值选择查询 564
20.10 多级排序 567
20.11 组合查询 569
20.12 Join查询 571
20.13 练习 572
20.14 本章要点 572
第21章 数据库 575
21.1 使用数据库 575
21.2 安装SQL Server Express 576
21.3 Entity Framework 576
21.4 Code First数据库 576
21.5 数据库的位置 583
21.6 导航数据库关系 584
21.7 处理迁移 591
21.8 在已有的数据库中创建和查询XML 593
21.9 练习 596
21.10 本章要点 597
第Ⅴ部分 其他技术 601
第22章 Windows Communication Foundation 601
22.1 WCF的含义 602
22.2 WCF概念 602
22.2.1 WCF通信协议 603
22.2.2 地址、端点和绑定 603
22.2.3 协定 605
22.2.4 消息模式 605
22.2.5 行为 605
22.2.6 驻留 606
22.3 WCF编程 606
22.3.1 WCF测试客户端程序 612
22.3.2 定义WCF服务协定 613
22.3.3 自驻留的WCF服务 620
22.4 练习 626
22.5 本章要点 627
第23章 通用应用程序 629
23.1 入门 629
23.2 通用应用程序 630
23.3 应用程序概念和设计 631
23.3.1 屏幕方向 631
23.3.2 菜单和工具栏 631
23.3.3 磁贴和徽章 631
23.3.4 应用程序的生存期 632
23.3.5 锁屏应用程序 632
23.4 应用程序的开发 632
23.4.1 自适应显示 632
23.4.2 沙箱应用程序 640
23.4.3 在页面之间导航 644
23.4.4 CommandBar控件 646
23.4.5 管理状态 648
23.5 Windows Store应用程序的常见元素 650
23.6 Windows Store 652
23.6.1 打包应用程序 652
23.6.2 创建包 652
23.7 练习 653
23.8 本章要点 653
附录A 习题答案 655