本站支持尊重有效期内的版权/著作权,所有的资源均来自于互联网网友分享或网盘资源,一旦发现资源涉及侵权,将立即删除。希望所有用户一同监督并反馈问题,如有侵权请联系站长或发送邮件到ebook666@outlook.com,本站将立马改正
商品基本信息,请以下列介绍为准 | |
商品名称: | C#高级编程(第11版) C# 7 & .NET Core 2.0 |
作者: | (美)克里斯琴·内格尔(Christian Nagel)著 |
定价: | 198.0 |
出版社: | 清华大学出版社 |
出版日期: | 2019-03-01 |
ISBN: | 9787302522560 |
印次: | |
版次: | |
装帧: | |
开本: | 16开 |
内容简介 | |
为需要新工具的开发人员介绍了C# 7和.NET Core 2.0的扩展新特性 揭示了Visual Studio 2017的新技巧和切合实际的提示括新的用户界面、新增的模板、编辑器的等 论述了计划工作流的全新方式,使编码更快,诊断和调试更,测试更频繁,发布更自信 为开发在Android、iOS、Windows、Linux、网络和云上运行的应用程序提供了循序的指南 掌握Visual Studio的率特性,以加速AI革新 |
目录 | |
目 录 第 I 部分 C# 语 言 第1 章 .NET 应用程序和工具?? 3 1.1 选择技术?? 3 1.2 回顾.NET 历史?? 4 1.2.1 C# 1.0——一种新语言? 4 1.2.2 带有泛型的C# 2 和.NET 2? 6 1.2.3 .NET 3.0——Windows Presentation Foundation?? 6 1.2.4 C# 3 和.NET 3.5——LINQ?? 6 1.2.5 C# 4 和.NET 4.0——dynamic 和TPL?? 7 1.2.6 C# 5 和异步编程?? 7 1.2.7 C# 6 和.NET Core 1.0?? 8 1.2.8 C# 7 和.NET Core 2.0??? 8 1.2.9 选择技术,继续??? 9 1.3 .NET 术语??? 10 1.3.1 .NET Framework????? 11 1.3.2 .NET Core????? 11 1.3.3 .NET Standard??? 11 1.3.4 NuGet?? 12 1.3.5 名称空间?? 12 1.3.6 公共语言运行库?? 13 1.3.7 Windows 运行库?? 13 1.4 用.NET Core CLI 编译? 14 1.4.1 设置环境?? 14 1.4.2 创建应用程序?? 15 1.4.3 构建应用程序?? 16 1.4.4 运行应用程序?? 16 1.4.5 创建Web 应用程序?? 17 1.4.6 发布应用程序?? 17 1.5 使用Visual Studio 2017?? 19 1.6 应用程序类型和技术?? 24 1.6.1 数据访问?? 24 1.6.2 Windows 应用程序?? 24 1.6.3 Xamarin??? 24 1.6.4 Web 应用程序??? 25 1.6.5 Web API???? 25 1.6.6 WebHooks 和SignalR?? 25 1.6.7 Microsoft Azure???? 25 1.7 开发工具??? 26 1.7.1 Visual Studio Community?? 27 1.7.2 Visual Studio Professional?? 27 1.7.3 Visual Studio Enterprise?? 27 1.7.4 Visual Studio for Mac?? 27 1.7.5 Visual Studio Code?? 27 1.8 小结??? 27 第2 章 核心C#?? 29 2.1 C#基础???? 29 2.2 变量??? 31 2.2.1 初始化变量??? 31 2.2.2 类型推断??? 32 2.2.3 变量的作用域??? 33 2.2.4 常量??? 34 2.3 预定义数据类型???? 35 2.3.1 值类型和引用类型??? 35 2.3.2 .NET 类型???? 36 2.3.3 预定义的值类型??? 36 2.3.4 预定义的引用类型?? 40 2.4 程序流控制??? 42 2.4.1 条件语句??? 42 2.4.2 循环??? 44 2.4.3 跳转语句??? 47 2.5 名称空间??? 47 2.5.ing 语句??? 48 2.5.2 名称空间的别名??? 49 2.6 Main()方法??? 49 2.7 使用注释??? 50 2.7.1 源文件中的内部注释?? 50 2.7.2 XML 文档???? 51 2.8 C#预处理器指令??? 52 2.8.1 #define 和#undef??? 52 2.8.2 #if、#elif、#else 和#endif??? 52 2.8.3 #warning 和 # error??? 53 2.8.4 #region 和#endregion?? 53 2.8.5 #line???? 53 2.8.6 #pragma???? 54 2.9 C#编程准则??? 54 2.9.1 关于标识符的规则??? 54 2.9.2 用法约定??? 55 2.10 小结?????? 58 第3 章 对象和类型?? 59 3.1 创建及使用类???? 60 3.2 类和结构??? 60 3.3 类??? 61 3.3.1 字段??? 61 3.3.2 只读字段??? 61 3.3.3 属性??? 62 3.3.4 匿名类型??? 65 3.3.5 方法??? 66 3.3.6 构造函数??? 69 3.4 结构??? 73 3.4.1 结构是值类型???? 74 3.4.2 只读结构??? 75 3.4.3 结构和继承??? 75 3.4.4 结构的构造函数??? 75 3.4.5 ref 结构???? 76 3.5 按值和按引用传递参数?? 76 3.5.1 ref 参数???? 77 3.5.2 out 参数??? 77 3.5.3 in 参数??? 78 3.6 可空类型??? 79 3.7 枚举类型??? 79 3.8 部分类???? 81 3.9 扩展方法??? 83 3.10 Object 类??? 83 3.11 小结??? 84 第4 章 继承?? 85 4.1 面向对象??? 85 4.2 继承的类型??? 85 4.2.1 多重继承??? 86 4.2.2 结构和类??? 86 4.3 实现继承??? 86 4.3.1 虚方法??? 87 4.3.2 多态性??? 88 4.3.3 隐藏方法??? 89 4.3.4 调用方法的基类版本??? 90 4.3.5 抽象类和抽象方法?? 90 4.3.6 密封类和密封方法?? 91 4.3.7 派生类的构造函数?? 91 4.4 修饰符????? 93 4.4.1 访问修饰符???? 93 4.4.2 其他修饰符???? 94 4.5 接口??? 94 4.5.1 定义和实现接口???? 95 4.5.2 派生的接口???? 97 4.6 is 和as 运算符??? 98 4.7 小结??? 99 第5 章 泛型??? 100 5.1 泛型概述???? 100 5.1.1 性能??? 101 5.1.2 类型??? 102 5.1.3 制代码的重用??? 102 5.1.4 代码的扩展??? 102 5.1.5 命名约定??? 102 5.2 创建泛型类??? 103 5.3 泛型能??? 105 5.3.1 默认值??? 106 5.3.2 约束??? 106 5.3.3 继承??? 108 5.3.4 静态成员??? 108 5.4 泛型接口???? 109 5.4.1 协变和抗变??? 109 5.4.2 泛型接口的协变?? 110 5.4.3 泛型接口的抗变?? 111 5.5 泛型结构?? 111 5.6 泛型方法?? 113 5.6.1 泛型方法示例?? 113 5.6.2 带约束的泛型方法??? 114 5.6.3 带委托的泛型方法??? 115 5.6.4 泛型方法规范?????? 115 5.7 小结??? 116 第6 章 运算符和类型强制转换?? 117 6.1 运算符和类型转换??? 117 6.2 运算符?? 118 6.2.1 运算符的简化作????? 119 6.2.2 运算符的优先级和关联性???? 125 6.3 使用制运算符??????? 126 6.3.1 位的移动??????????? 128 6.3.2 有符号数和无符号数??? 128 6.4 类型的性?????? 129 6.4.1 类型转换?????????? 130 6.4.2 装箱和拆箱???????? 132 6.5 比较对象的相等性??? 133 6.5.1 比较引用类型的相等性?? 133 6.5.2 比较值类型的相等性???? 134 6.6 运算符重载??????? 135 6.6.1 运算符的工作方式?????? 135 6.6.2 运算符重载的示例:Vector 结构???? 136 6.6.3 比较运算符的重载?????? 139 6.6.4 可以重载的运算符?????? 140 6.7 实现自定义的索引运算符???? 141 6.8 用户定义的类型强制转换???? 142 6.8.1 实现用户定义的类型强制转换???? 143 6.8.2 多重类型强制转换?????? 147 6.9 小结?????? 150 第7 章 数组???? 151 7.1 相同类型的多个对象??? 151 7.2 简单数组?? 152 7.2.1 数组的声明?? 152 7.2.2 数组的初始化?? 152 7.2.3 访问数组元素?? 153 7.2.4 使用引用类型?? 153 7.3 多维数组?? 154 7.4 锯齿数组?? 155 7.5 Array 类?? 156 7.5.1 创建数组?? 156 7.5.2 数组?? 156 7.5.3 排序????? 157 7.6 数组作为参数?? 159 7.7 数组协变?? 159 7.8 枚举?? 160 7.8.1 IEnumerator 接口???? 160 7.8.2 foreach 语句???? 160 7.8.3 yield 语句?? 161 7.9 结构比较?? 164 7.10 Span????? 165 7.10.1 创建切片?? 166 7.10.2 使用Span 改变值??? 166 7.10.3 只读的Span??? 167 7.11 数组池???? 167 7.11.1 创建数组池???? 168 7.11.2 从池中租用内存??? 168 7.11.3 将内存返回给池??? 168 7.12 小结?????? 169 第8 章 委托、lambda 表达式和事件??? 170 8.1 引用方法??????? 170 8.2 委托??? 170 8.2.1 声明委托??? 171 8.2.2 使用委托??? 172 8.2.3 简单的委托示例??? 174 8.2.4 Action 8.2.5 BubbleSorter 示例????? 176 8.2.6 多播委托??? 177 8.2.7 匿名方法??? 180 8.3 lambda 表达式??? 181 8.3.1 参数????? 181 8.3.2 多行代码??? 181 8.3.3 ???? 182 8.4 事件???? 182 8.4.1 事件发布程序??? 182 8.4.2 事件侦听器??? 184 8.5 小结??? 185 第9 章 字符串和正则表达式 186 9.1 System.String 类??? 187 9.1.1 构建字符串??? 188 9.1.2 StringBuilder 成员?? 190 9.2 字符串格式?????? 190 9.2.1 字符串插值??????? 191 9.2.2 日期时间和数字的格式??? 192 9.2.3 自定义字符串格式???? 193 9.3 正则表达式????? 194 9.3.1 正则表达式概述??? 194 9.3.2 RegularExpressionsPlayground 示例??? 195 9.3.3 显示结果??? 197 9.3.4 匹配、组和捕获??? 198 9.4 字符串和Span??? 200 9.5 小结??? 201 第10 章 集合???? 202 10.1 概述???? 202 10.2 集合接口和类型??? 203 10.3 列表???? 203 10.3.1 创建列表??? 204 10.3.2 只读集合??? 210 10.4 队列???? 210 10.5 栈??? 213 10.6 链表???? 214 10.7 有序列表??? 217 10.8 字典???? 219 10.8.1 字典初始化器?? 219 10.8.2 键的类型??? 219 10.8.3 字典示例??? 220 10.8.4 Lookup 类??? 223 10.8.5 有序字典??? 223 10.9 集??? 224 10.10 性能??? 225 10.11 小结??? 227 第11 章 特殊的集合?? 228 11.1 概述???? 228 11.2 处理位??? 228 11.2.1 BitArray 类??? 229 11.2.2 BitVector32 结构?? 230 11.3 可观察的集合???? 232 11.4 不变的集合???? 233 11.4.1 使用构建器和不变的集合??? 235 11.4.2 不变集合类型和接口????? 235 11.4.3 使用LINQ 和不变的数组?? 236 11.5 并发集合??? 236 11.5.1 创建管道??? 237 11.5.2 使用BloCollection?? 239 11.5.3 使用ConcurrentDictionary?? 240 11.5.4 完成管道??? 241 11.6 小结???? 242 第12 章 LINQ?? 243 12.1 LINQ 概述??? 243 12.1.1 列表和实体??? 244 12.1.2 LINQ 查询??? 246 12.1.3 扩展方法??? 246 12.1.4 推迟查询的执行??? 248 12.2 标准的查询作符 249 12.2.1 筛选??? 250 12.2.2 用索引筛选??? 251 12.2.3 类型筛选??? 252 12.2.4 复合的from 子句?? 252 12.2.5 排序??? 253 12.2.6 分组??? 254 12.2.7 LINQ 查询中的变量???? 255 12.2.8 对嵌套的对象分组????? 255 12.2.9 内连接????? 256 12.2.10 左外连接???? 258 12.2.11 组连接????? 260 12.2.12 集合作???? 262 12.2.13 合并???? 263 12.2.14 分区???? 264 12.2.15 聚合作符??? 264 12.2.16 转换作符??? 266 12.2.17 生成作符??? 267 12.3 并行LINQ???? 267 12.3.1 并行查询??? 268 12.3.2 分区器??? 268 12.3.3 取消??? 269 12.4 表达式树??? 269 12.5 LINQ 提供程序???? 271 12.6 小结???? 272 第13 章 C#函数式编程?? 273 13.1 概述???? 273 13.1.1 避免状态突变???? 274 13.1.2 函数作为第一个类???? 275 13.2 表达式体的成员??? 275 13.3 扩展方法??? 276 13.4 using static 声明???? 277 13.5 本地函数??? 278 13.5.1 本地函数与yield 语句??? 279 13.5.2 递归本地函数???? 281 13.6 元组????? 282 13.6.1 元组的声明和初始化??? 282 13.6.2 元组解构??? 283 13.6.3 元组的返回??? 283 13.6.4 幕后的原理??? 284 13.6.5 ValueTuple 与元组的兼容性??? 285 13.6.6 推断出元组名称???? 285 13.6.7 元组与链表??? 286 13.6.8 元组和LINQ??? 286 13.6.9 解构??? 287 13.6.10 解构与扩展方法??? 288 13.7 模式匹配??????? 288 13.7.1 模式匹配与is 运算符??? 288 13.7.2 模式匹配与switch 语句?? 290 13.7.3 模式匹配与泛型????? 291 13.8 小结??? 291 第14 章 错误和异常???? 292 14.1 简介??? 292 14.2 异常类?? 293 14.3 捕获异常?? 294 14.3.1 异常和性能?? 296 14.3.2 实现多个catch 块??? 296 14.3.3 在其他代码中捕获异常??? 299 14.3.4 System.Exception 属性??? 299 14.3.5 异常过滤器??????? 299 14.3.6 重新抛出异常?????? 300 14.3.7 没有处理异常时发生的情况???? 303 14.4 用户定义的异常类???? 303 14.4.1 捕获用户定义的异常????? 304 14.4.2 抛出用户定义的异常????? 305 14.4.3 定义用户定义的异常类??? 307 14.5 调用者信息??????? 309 14.6 小结??? 310 第15 章 异步编程????? 311 15.1 异步编程的重要性?? 311 15.2 异步编程的.NET 历史??? 312 15.2.1 同步调用????? 312 15.2.2 异步模式????? 313 15.2.3 基于事件的异步模式???? 314 15.2.4 基于任务的异步模式???? 314 15.2.5 异步Main()方法???? 315 15.3 异步编程的基础?? 315 15.3.1 创建任务?? 316 15.3.2 调用异步方法???? 316 15.3.3 使用Awaiter????? 317 15.3.4 延续任务?? 317 15.3.5 同步上下文?? 318 15.3.6 使用多个异步方法??? 318 15.3.7 使用ValueTasks???? 319 15.3.8 转换异步模式????? 320 15.4 错误处理?????? 320 15.4.1 异步方法的异常处理???? 321 15.4.2 多个异步方法的异常处理??? 321 15.4.3 使用AggregateException 信息?? 322 15.5 异步与Windows 应用程序?? 322 15.5.1 配置await???? 323 15.5.2 切换到UI 线程???? 324 15.5.3 使用IAsyncOperation?? 325 15.5.4 避免阻塞情况????? 325 15.6 小结?????? 325 |
编辑推荐 | |
C# 7内幕指南括新特性 目前Visual Studio 2017提供了C# 7。发布为NuGe的每个.NET Core部分行了更新。阅读这本专家级指南是经验丰富的程序员提率的更快捷方式。C# 7以更快的速度完成更多工作,没有人比Christian Nagel更适合传播在现实中极有价值的全新信息。本书论述清晰,内容完整详尽,为开发人员展示了如何将.NET引入非微台,如何作这台上的工具,例如Docker、Gulp和NPM。 |