C#入门经典(第8版) 目 录 第 I 部分 C# 语 言 第1章 C#简介 3 1.1 .NET Framework的含义 3 1.1.1 .NET Framework的内容 4 1.1.2 .NET Standard和.NET Core 4 1.1.3 使用.NET Framework和.NET Core编写 应用程序 4 1.2 C#的含义 7 1.2.1 用C#能编写什么样的应用程序 7 1.2.2 本书中的C# 8 1.3 Visual Studio 2017 8 1.3.1 Visual Studio 2017产品 8 1.3.2 解决方案 9 1.4 本章要点 9 第2章 编写C#程序 11 2.1 Visual Studio 2017开发环境 12 2.2 控制台应用程序 15 2.2.1 Solution Explorer窗口 17 2.2.2 Properties窗口 18 2.2.3 Error List窗口 18 2.3 桌面应用程序 19 2.4 本章要点 21 第3章 变量和表达式 23 3.1 C#的基本语法 23 3.2 C#控制台应用程序的基本结构 25 3.3 变量 26 3.3.1 简单类型 26 3.3.2 变量的命名 29 3.3.3 字面值 30 3.4 表达式 32 3.4.1 数学运算符 32 3.4.2 赋值运算符 35 3.4.3 运算符的优先级 36 3.4.4 名称空间 37 3.5 习题 37 3.6 本章要点 38 第4章 流程控制 39 4.1 布尔逻辑 39 4.1.1 布尔按位运算符和赋值运算符 41 4.1.2 运算符优先级的更新 42 4.2 分支 43 4.2.1 三元运算符 43 4.2.2 if语句 43 4.2.3 switch语句 46 4.3 循环 48 4.3.1 do循环 48 4.3.2 while循环 50 4.3.3 for循环 51 4.3.4 循环的中断 52 4.3.5 无限循环 52 4.4 习题 53 4.5 本章要点 53 第5章 变量的更多内容 55 5.1 类型转换 55 5.1.1 隐式转换 56 5.1.2 显式转换 57 5.1.3 使用Convert命令进行显式转换 59 5.2 复杂的变量类型 61 5.2.1 枚举 61 5.2.2 结构 64 5.2.3 数组 66 5.3 字符串的处理 73 5.4 习题 77 5.5 本章要点 77 第6章 函数 79 6.1 定义和使用函数 80 6.1.1 返回值 81 6.1.2 参数 82 6.2 变量的作用域 88 6.2.1 其他结构中变量的作用域 91 6.2.2 参数和返回值与全局数据 92 6.2.3 局部函数 92 6.3 Main()函数 93 6.4 结构函数 95 6.5 函数的重载 95 6.6 委托 97 6.7 习题 99 6.8 本章要点 99 第7章 调试和错误处理 101 7.1 Visual Studio中的调试 101 7.1.1 非中断(正常)模式下的调试 102 7.1.2 中断模式下的调试 108 7.2 错误处理 113 7.2.1 try...catch...finally 114 7.2.2 throw表达式 119 7.2.3 列出和配置异常 119 7.3 习题 119 7.4 本章要点 120 第8章 面向对象编程简介 121 8.1 面向对象编程的含义 121 8.1.1 对象的含义 122 8.1.2 一切皆对象 124 8.1.3 对象的生命周期 124 8.1.4 静态成员和实例类成员 125 8.2 OOP技术 126 8.2.1 接口 126 8.2.2 继承 127 8.2.3 多态性 129 8.2.4 对象之间的关系 130 8.2.5 运算符重载 131 8.2.6 事件 131 8.2.7 引用类型和值类型 131 8.3 桌面应用程序中的OOP 132 8.4 习题 135 8.5 本章要点 135 第9章 定义类 137 9.1 C#中的类定义 137 9.2 System.Object 141 9.3 构造函数和析构函数 142 9.4 Visual Studio中的OOP工具 145 9.4.1 Class View窗口 145 9.4.2 对象浏览器 146 9.4.3 添加类 147 9.4.4 类图 148 9.5 类库项目 149 9.6 接口和抽象类 152 9.7 结构类型 154 9.8 浅度和深度复制 155 9.9 习题 156 9.10 本章要点 156 第10章 定义类成员 157 10.1 成员定义 157 10.1.1 定义字段 158 10.1.2 定义方法 158 10.1.3 定义属性 159 10.1.4 元组析构 163 10.1.5 重构成员 163 10.1.6 自动属性 164 10.2 类成员的其他主题 165 10.2.1 隐藏基类方法 165 10.2.2 调用重写或隐藏的基类方法 166 10.2.3 使用嵌套的类型定义 167 10.3 接口的实现 168 10.4 部分类定义 170 10.5 部分方法定义 171 10.6 示例应用程序 172 10.6.1 规划应用程序 172 10.6.2 编写类库 172 10.6.3 类库的客户应用程序 178 10.7 Call Hierarchy窗口 179 10.8 习题 179 10.9 本章要点 180 第11章 集合、比较和转换 181 11.1 集合 181 11.1.1 使用集合 182 11.1.2 定义集合 186 11.1.3 索引符 187 11.1.4 给CardLib添加Cards集合 188 11.1.5 键控集合和IDictionary 190 11.1.6 迭代器 191 11.1.7 迭代器和集合 194 11.1.8 深度复制 194 11.1.9 给CardLib添加深度复制 195 11.2 比较 196 11.2.1 类型比较 197 11.2.2 使用is运算符模式表达式进行模式 匹配 200 11.2.3 值比较 200 11.3 转换 211 11.3.1 重载转换运算符 211 11.3.2 as运算符 212 11.4 习题 213 11.5 本章要点 213 第12章 泛型 215 12.1 泛型的含义 215 12.2 使用泛型 216 12.2.1 可空类型 216 12.2.2 System.Collections.Generic名称空间 222 12.3 定义泛型类型 229 12.3.1 定义泛型类 229 12.3.2 定义泛型接口 236 12.3.3 定义泛型方法 237 12.3.4 定义泛型委托 238 12.4 变体 238 12.4.1 协变 239 12.4.2 抗变 239 12.5 习题 240 12.6 本章要点 240 第13章 高级C#技术 243 13.1 ::运算符和全局名称空间限定符 244 13.2 定制异常 245 13.3 事件 246 13.3.1 事件的含义 246 13.3.2 处理事件 247 13.3.3 定义事件 249 13.4 扩展和使用CardLib 254 13.5 特性 260 13.5.1 读取特性 260 13.5.2 创建特性 261 13.6 初始化器 262 13.6.1 对象初始化器 262 13.6.2 集合初始化器 263 13.7 类型推理 266 13.8 匿名类型 267 13.9 动态查找 270 13.10 高级方法参数 273 13.10.1 可选参数 273 13.10.2 命名参数 274 13.11 Lambda表达式 277 13.11.1 复习匿名方法 277 13.11.2 把Lambda表达式用于匿名方法 278 13.11.3 Lambda表达式的参数 280 13.11.4 Lambda表达式的语句体 281 13.11.5 Lambda表达式用作委托和 表达式树 281 13.11.6 Lambda表达式和集合 282 13.12 习题 284 13.13 本章要点 285
第 II 部分 Windows编程 第14章 基本桌面编程 289 14.1 XAML 290 14.1.1 关注点分离 290 14.1.2 XAML基础知识 290 14.2 动手实践 292 14.2.1 WPF控件 293 14.2.2 属性 294 14.2.3 事件 296 14.3 控件布局 300 14.3.1 基本布局概念 300 14.3.2 布局面板 301 14.4 游戏客户端 308 14.4.1 About窗口 308 14.4.2 Options窗口 312 14.4.3 数据绑定 318 14.4.4 使用ListBox控件启动游戏 321 14.5 习题 324 14.6 本章要点 325 第15章 高级桌面编程 327 15.1 创建控件并设置样式 327 15.1.1 样式 328 15.1.2 模板 328 15.1.3 触发器 329 15.1.4 动画 330 15.2 WPF用户控件 331 15.3 主窗口 340 15.3.1 菜单控件 340 15.3.2 路由命令和菜单 341 15.4 把所有内容结合起来 344 15.4.1 重构域模型 344 15.4.2 视图模型 349 15.4.3 大功告成 354 15.5 习题 360 15.6 本章要点 361
第 III 部分 云和跨平台编程 第16章 基本的云编程 365 16.1 云、云计算和云优化堆栈 366 16.2 云模式和Z ui佳实践 368 16.3 使用Microsoft Azure C#库创建 存储容器 369 16.4 创建使用存储容器的ASP.NET 4.7 网站 376 16.5 习题 382 16.6 本章要点 382 第17章 高级云编程和部署 383 17.1 创建ASP.NET Web API 383 17.2 在Microsoft Azure上部署和 使用ASP.NET Web API 387 17.3 缩放Microsoft Azure平台上的 ASP.NET Web API 392 17.4 习题 395 17.5 本章要点 395 第18章 .NET Standard与.NET Core 397 18.1 跨平台基础知识以及必知的 关键术语 398 18.2 .NET Standard的含义和作用 399 18.3 引用和目标框架 402 18.4 .NET Core的含义 403 18.4.1 跨平台 404 18.4.2 开源 405 18.4.3 针对云进行优化 405 18.4.4 性能 406 18.4.5 模块化设计 406 18.4.6 独立的部署模型 408 18.5 生成和打包.NET Standard库 409 18.6 使用Visual Studio生成.NET Core 应用程序 413 18.7 从.NET Framework移植到.NET Core 415 18.7.1 识别第三方依赖 415 18.7.2 理解哪些功能不可用 415 18.7.3 升级当前的.NET Framework目标 416 18.7.4 为程序选择目标平台 416 18.8 本章要点 416 第19章 ASP.NET与ASP.NET Core 417 19.1 Web应用程序概述 418 19.2 选择合适的ASP.NET 418 19.2.1 ASP.NET Web Forms 419 19.2.2 ASP.NET MVC 420 19.2.3 ASP.NET Web API 422 19.2.4 ASP.NET Core 422 19.2.5 ASP.NET Web Site与ASP.NET Web Application Project类型的对比 423 19.3 使用ASP.NET Web Forms 424 19.3.1 服务器控件 425 19.3.2 输入验证 425 19.3.3 状态管理 426 19.3.4 身份验证与授权 426 19.4 创建ASP.NET Core Web应用程序 430 19.4.1 IIS和Kestrel 431 19.4.2 Razor语法 431 19.4.3 输入验证 432 19.4.4 状态管理 432 19.4.5 身份验证与授权 433 19.4.6 依赖注入 433 19.5 本章要点 437
第 IV 部分 数 据 访 问 第20章 文件 441 20.1 用于输入和输出的类 441 20.1.1 File类和Directory类 442 20.1.2 FileInfo类 443 20.1.3 DirectoryInfo类 444 20.1.4 路径名和相对路径 444 20.2 流 445 20.2.1 使用流的类 445 20.2.2 FileStream对象 445 20.2.3 StreamWriter对象 450 20.2.4 StreamReader对象 452 20.2.5 异步文件访问 454 20.2.6 读写压缩文件 454 20.3 监控文件系统 456 20.4 习题 460 20.5 本章要点 460 第21章 XML和JSON 461 21.1 XML基础 461 21.2 JSON 基础 462 21.3 XML模式 462 21.4 XML文档对象模型 464 21.4.1 XmlDocument类 464 21.4.2 XmlElement类 465 21.4.3 修改节点的值 468 21.5 把XML转换为JSON 471 21.6 用XPath搜索XML 473 21.7 习题 475 21.8 本章要点 476 第22章 LINQ 477 22.1 LINQ to XML 478 22.1.1 LINQ to XML函数构造方式 478 22.1.2 处理XML片段 480 22.2 LINQ提供程序 482 22.3 LINQ查询语法 482 22.3.1 用var关键字声明结果变量 483 22.3.2 指定数据源:from子句 484 22.3.3 指定条件:where子句 484 22.3.4 选择元素:select子句 484 22.3.5 完成:使用foreach循环 484 22.3.6 延迟执行的查询 484 22.4 LINQ方法语法 485 22.4.1 LINQ扩展方法 485 22.4.2 查询语法和方法语法 485 22.4.3 Lambda 表达式 485 22.5 排序查询结果 487 22.6 orderby子句 488 22.7 查询大型数据集 488 22.8 使用聚合运算符 490 22.9 单值选择查询 492 22.10 多级排序 494 22.11 分组查询 495 22.12 join查询 497 22.13 习题 498 22.14 本章要点 498 第23章 数据库 499 23.1 使用数据库 499 23.2 安装SQL Server Express 500 23.3 Entity Framework 500 23.4 Code First 数据库 500 23.5 数据库的位置 506 23.6 导航数据库关系 507 23.7 处理迁移 512 23.8 在已有的数据库中创建和查询XML 513 23.9 习题 517 23.10 本章要点 517 ....... Visual Studio 2017高级编程(第7版) 第Ⅰ部分 集成开发环境 第1章 快速入门 3 1.1 入门 3 1.1.1 安装Visual Studio 2017 3 1.1.2 运行Visual Studio 2017 7 1.1.3 Visual Studio真的支持云吗? 7 1.2 Visual Studio IDE 8 1.3 小结 13 第2章 Solution Explorer、Toolbox 和Properties窗口 15 2.1 Solution Explorer窗口 15 2.1.1 预览文件 18 2.1.2 常见任务 18 2.2 Toolbox窗口 26 2.2.1 排列组件 27 2.2.2 添加组件 28 2.3 Properties窗口 29 2.4 小结 33 第3章 选项和定制 35 3.1 Start Page 35 3.2 窗口布局 36 3.2.1 查看窗口和工具栏 36 3.2.2 停靠 37 3.2.3 保存窗口布局 39 3.3 编辑区域 40 3.3.1 浏览打开的项 41 3.3.2 字体和颜色 42 3.3.3 可视化指南 42 3.3.4 全屏模式 43 3.3.5 跟踪变化 44 3.4 其他选项 44 3.4.1 快捷键 44 3.4.2 快速启动 45 3.4.3 项目和解决方案 46 3.4.4 Build and Run界面 47 3.4.5 VB选项 48 3.5 导入和导出设置 48 3.6 小结 50 第4章 Visual Studio工作区 51 4.1 代码编辑器 51 4.1.1 代码编辑器窗口的布局 51 4.1.2 区域 52 4.1.3 大纲 53 4.1.4 代码的格式化 53 4.1.5 向前/向后浏览 54 4.1.6 其他代码编辑器功能 54 4.1.7 拆分视图 55 4.1.8 代码窗口的分离(浮动) 55 4.1.9 复制Solution Explorer 56 4.1.10 创建选项卡组 57 4.1.11 高级功能 58 4.2 代码导航 59 4.2.1 Peek Definition 59 4.2.2 增强的滚动条 60 4.3 命令窗口 63 4.4 Immediate窗口 64 4.5 Class View工具窗口 64 4.6 Error List窗口 65 4.7 Object Browser窗口 65 4.8 小结 66 第5章 查找和替换以及帮助 67 5.1 Quick Find与Quick Replace 67 5.1.1 Quick Find 67 5.1.2 Quick Replace 68 5.1.3 查找选项 68 5.1.4 Find and Replace选项 69 5.2 文件中查找/替换 69 5.2.1 文件中查找 69 5.2.2 查找对话框选项 70 5.2.3 正则表达式 70 5.2.4 结果窗口 72 5.2.5 文件中替换 72 5.3 访问帮助 73 5.3.1 浏览和搜索帮助系统 73 5.3.2 配置帮助系统 74 5.4 小结 74 第Ⅱ部分 入门 第6章 解决方案、项目和项 77 6.1 解决方案的结构 77 6.2 解决方案文件的格式 78 6.3 解决方案的属性 79 6.3.1 常规属性 80 6.3.2 配置属性 80 6.4 项目类型 81 6.5 项目文件格式 83 6.6 项目属性 83 6.6.1 Application选项卡 83 6.6.2 Compile选项卡(仅用于Visual Basic) 86 6.6.3 Build选项卡(仅用于C#和F#) 87 6.6.4 Build Events选项卡(仅用于C#和F#) 88 6.6.5 Debug选项卡 88 6.6.6 References选项卡(仅用于Visual Basic) 89 6.6.7 Resources选项卡 90 6.6.8 Services选项卡 90 6.6.9 Settings选项卡 91 6.6.10 Reference Paths选项卡(仅用于 C#和F#) 91 6.6.11 Signing选项卡 92 6.6.12 My Extensions选项卡(仅用于 Visual Basic) 92 6.6.13 Security选项卡 93 6.6.14 Publish选项卡 93 6.6.15 Code Analysis选项卡 94 6.7 C/C Code Analysis工具 95 6.8 Web应用程序项目属性 96 6.8.1 Web选项卡 96 6.8.2 Package/Publish Web选项卡 96 6.8.3 Package/Publish SQL选项卡 97 6.9 Web Site项目 97 6.10 NuGet包 98 6.10.1 NuGet包管理器 98 6.10.2 Package Manager Console 99 6.11 小结 99 第7章 IntelliSense和书签 101 7.1 对IntelliSense的解释 101 7.1.1 通用的IntelliSense 102 7.1.2 IntelliSense和C 103 7.1.3 单词和短语的自动完成 103 7.1.4 参数信息 107 7.1.5 快速信息 108 7.2 IntelliSense 108 7.2.1 IntelliSense上下文 108 7.2.2 引用另一个文件 109 7.3 XAML IntelliSense 110 7.4 IntelliSense选项 110 7.4.1 通用选项 110 7.4.2 C#的特定选项 111 7.5 扩展IntelliSense 112 7.5.1 代码片段 112 7.5.2 XML注释 112 7.5.3 添加自己的IntelliSense 112 7.6 书签和Bookmarks窗口 113 7.7 小结 114 第8章 代码片段和重构 115 8.1 代码片段概述 115 8.1.1 在Toolbox中存储代码块 115 8.1.2 代码片段 116 8.1.3 使用C#中的代码片段 116 8.1.4 VB中的代码片段 117 8.1.5 用代码片段进行封装 117 8.1.6 Code Snippets Manager 118 8.1.7 创建代码片段 119 8.1.8 查看已有的代码片段 119 8.1.9 分布代码段 122 8.2 访问重构支持 123 8.3 重构操作 123 8.3.1 Extract Method重构操作 123 8.3.2 Encapsulate Field重构操作 124 8.3.3 Extract Interface重构操作 124 8.3.4 Change Signature重构操作 125 8.3.5 Inline和Explaining Variables重构操作 125 8.3.6 Rename重构操作 126 8.3.7 Simplify Object Initialization重构操作 126 8.3.8 Inline Variable Declarations重构操作 127 8.3.9 Use‘throw’Expression重构操作 127 8.3.10 Generate Method Stub重构操作 128 8.3.11 Remove and Sort Usings重构操作 129 8.4 小结 129 第9章 Server Explorer 131 9.1 Servers连接 131 9.1.1 Event Logs节点 132 9.1.2 Message Queues节点 133 9.1.3 Performance Counters节点 135 9.1.4 Services节点 137 9.2 Data Connections节点 138 9.3 SharePoint Connections节点 138 9.4 小结 138 第Ⅲ部分 进阶 第10章 单元测试 141 10.1 第一个测试用例 141 10.1.1 使用特性标识测试 145 10.1.2 其他测试特性 145 10.1.3 单元测试和Code Lens 147 10.2 指定判断条件 148 10.2.1 Assert类 148 10.2.2 StringAssert类 149 10.2.3 CollectionAssert类 149 10.2.4 ExpectedException特性 149 10.3 初始化和清理 150 10.3.1 TestInitialize和TestCleanup特性 151 10.3.2 ClassInitialize和ClassCleanup特性 151 10.3.3 AssemblyInitialize和AssemblyCleanup 特性 151 10.4 测试环境 151 10.4.1 数据 152 10.4.2 输出测试结果 154 10.5 Live Unit Testing 154 10.6 高级单元测试 155 10.6.1 定制属性 155 10.6.2 测试私有成员 156 10.7 IntelliTest 157 10.8 小结 159 第11章 项目模板和项模板 161 11.1 创建模板 161 11.1.1 项模板 161 11.1.2 项目模板 164 11.1.3 模板结构 164 11.1.4 模板参数 165 11.1.5 模板位置 166 11.2 扩展模板 166 11.2.1 模板项目的安装 166 11.2.2 IWizard 166 11.2.3 生成扩展项目模板 170 11.3 Starter Kit 171 11.4 联机模板 171 11.5 小结 172 第12章 管理源代码 173 12.1 源控制 173 12.1.1 选择源控制存储库 173 12.1.2 访问源控制 174 12.2 小结 177 第Ⅳ部分 桌面应用程序 第13章 Windows Form应用程序 181 13.1 入门 181 13.2 Windows窗体 182 13.2.1 Appearance属性 182 13.2.2 Layout属性 183 13.2.3 Window Style属性 183 13.3 窗体设计首选项 183 13.4 添加和定位控件 184 13.4.1 垂直对齐文本控件 185 13.4.2 自动定位多个控件 185 13.4.3 控件的Tab键顺序和分层 186 13.4.4 锁定控件设计 187 13.4.5 设置控件属性 187 13.4.6 基于服务的组件 188 13.4.7 智能标记任务 188 13.5 容器控件 188 13.5.1 Panel和SplitContainer控件 189 13.5.2 FlowLayoutPanel控件 189 13.5.3 TableLayoutPanel控件 190 13.6 停靠和锚定控件 190 13.7 小结 191 第14章 Windows Presentation Foundation (WPF) 193 14.1 WPF介绍 193 14.2 开始使用WPF 194 14.2.1 XAML基础 195 14.2.2 WPF控件 196 14.2.3 WPF布局控件 197 14.3 WPF设计器和XAML编辑器 198 14.3.1 使用XAML编辑器 200 14.3.2 使用WPF设计器 200 14.3.3 Properties工具窗口 202 14.3.4 数据绑定功能 205 14.4 设置应用程序的样式 208 14.5 Windows Forms的交互操作性 210 14.5.1 在Windows Forms中驻留WPF 控件 210 14.5.2 在WPF中驻留Windows Forms 控件 211 14.6 用WPF Visualizer调试 213 14.7 小结 214 第15章 通用Windows平台应用程序 215 15.1 Windows应用程序的定义 215 15.1.1 呈现内容 216 15.1.2 对齐和缩放 216 15.1.3 语义式缩放 217 15.1.4 磁贴 217 15.1.5 接受云 217 15.2 创建Windows应用程序 217 15.3 Windows运行库组件 222 15.4 .NET Native编译 222 15.5 小结 224 第Ⅴ部分 Web应用程序 第16章 ASP.NET Web窗体 227 16.1 Web Application项目和Web Site项目 227 16.2 创建Web项目 228 16.2.1 创建Web Site项目 228 16.2.2 创建Web Application项目 230 16.3 设计Web窗体 233 16.3.1 HTML Designer 233 16.3.2 定位控件和HTML元素 234 16.3.3 格式化控件和HTML元素 235 16.3.4 CSS工具 237 16.3.5 验证工具 239 16.4 Web控件 240 16.4.1 导航组件 240 16.4.2 用户身份验证 240 16.4.3 数据组件 241 16.5 主页面 243 16.6 富客户端开发 245 16.6.1 用开发 245 16.6.2 使用ASP.NET AJAX 246 16.7 小结 248 第17章 ASP.NET MVC 249 17.1 Model-View-Controller 249 17.2 开始使用ASP.NET MVC 250 17.3 选择Model 252 17.4 Controller和action方法 253 17.5 用View显示UI 255 17.6 高级MVC 261 17.6.1 路由 261 17.6.2 action方法参数 264 17.6.3 区域 266 17.6.4 验证 268 17.6.5 部分View 269 17.6.6 Dynamic Data模板 270 17.6.7 jQuery 272 17.7 小结 273 第18章 .NET Core 275 18.1 .NET Core的定义 275 18.2 使用ASP.NET Core 276 18.2.1 project.json和csproj 277 18.2.2 创建ASP.NET Core应用程序 277 18.3 NuGet包管理器 280 18.4 Bower包管理器 283 18.5 小结 285 第19章 Node.js开发 287 19.1 开始使用Node.js 287 19.2 Node Package Manager 291 19.3 Task Runner Explorer 294 19.4 小结 296 第20章 Python开发 297 20.1 Python入门 297 20.2 Cookiecutter扩展 301 20.3 小结 302 第Ⅵ部分 移动应用程序 第21章 使用.NET的移动应用程序 305 21.1 使用Xamarin 305 21.2 创建Xamarin Forms项目 306 21.3 调试应用程序 308 21.3.1 通用Windows平台 308 21.3.2 Android 308 21.3.3 iOS 316 21.4 小结 318 ....... |