C#8.0核心技术指南pdf下载pdf下载

C#8.0核心技术指南百度网盘pdf下载

作者:
简介:本篇主要提供C#8.0核心技术指南pdf下载
出版社:机械工业出版社自营官方旗舰店
出版时间:2021-07
pdf下载价格:9.50¥


预览


内容介绍

产品特色

编辑推荐

适读人群 :C#中高级开发人员,也适合作为教材以外的补充书籍

这本畅销书籍将回答你在C# 8.0或.NET Core学习和开发中遇到的各种问题。C#语言拥有惊人的灵活性和生命力,它的持续发展也促使我们紧随其步伐不断学习。
本书围绕概念和用例进行组织,不但为中高级程序员提供了简明的C#和.NET知识体系,还进行了一系列深度探索。

★从语法和变量到指针、闭包与模式等高级主题紧跟C#的进化速度。

★专门使用三章对LINQ进行深度解析。
★探索并发和异步编程、高级多线程编程以及并行编程知识。
★全面介绍.NET功能,包括正则表达式、网络编程、序列化、Span、反射以及加密功能。

★详细介绍Roslyn——模块化的C#编译器服务。

内容简介

本书全方位地介绍了 C# 的语言特性。在内容上,它兼顾了各种类型的读者。对于初学者,本书不论是介绍基本的语法,还是介绍高级的语言特性,都采用了讲解和示例结合的方法。而对于经验丰富的读者,本书的每一章都详尽而系统,是的案头参考书。
本书在前一版的基础上进行了大量的修订工作。不但将既有的内容和范例全部迁移到 .NET Core 之上,对 C# 8.0 与 .NET Core 3.x 提供的新特性进行了详细的介绍,还在部分示例中专门对编写跨平台运行的程序的技巧或陷阱进行了说明。可以说,本书从内容上涵盖了目前 C# 与 .NET Core 全新正式发行版的内容。

作者简介

Joseph Albahari是C# 8.0 Pocket Reference和LINQ Pocket Reference的作者。他还是流行的代码编辑执行和LINQ查询工具LINQPad的创作者。
Eric Johannsen是软件开发和机器学习领域的领军人物,无论在商业方面还是在技术方面都很出色。他在为新兴业务构建软件解决方案方面具有非常丰富的经验。

精彩书评

★“ 这本书是我案头上的必备参考书。”——Scott Guthrie,Microsoft

★“ 无论是初学者还是专家,都能从本书中学到C#的新技术。”——Eric Lippert,C# MVP



目录

第1章 C#和.NET Core简介7

1.1 面向对象7

1.2 类型安全性8

1.3 内存管理8

1.4 平台支持9

1.5 C#和公共语言运行时9

1.6 框架与基础类库10

1.7 遗留框架和小众框架11

1.8 Windows Runtime12

1.9 C#简史14


第2章 C#语言基础26

2.1 第一个C#程序26

2.2 语法29

2.3 类型基础32

2.4 数值类型40

2.5 布尔类型和运算符48

2.6 字符串和字符49

2.7 数组52

2.8 变量和参数57

2.9 表达式和运算符68

2.10 null运算符72

2.11 语句74

2.12 命名空间84


第3章 在C#中创建类型91

3.1 类91

3.2 继承108

3.3 object类型117

3.4 结构体120

3.5 访问权限修饰符123

3.6 接口125

3.7 枚举类型131

3.8 嵌套类型134

3.9 泛型136


第4章 C#的高级特性149

4.1 委托149

4.2 事件158

4.3 Lambda表达式164

4.4 匿名方法169

4.5 try语句和异常169

4.6 枚举类型和迭代器178

4.7 可空值类型183

4.8 可空引用类型(C# 8)188

4.9 扩展方法191

4.10 匿名类型193

4.11 元组194

4.12 模式198

4.13 特性202

4.14 调用者信息特性204

4.15 动态绑定205

4.16 运算符重载213

4.17 不安全的代码和指针216

4.18 预处理指令220

4.19 XML文档222


第5章 框架概述227

5.1 .NET Standard227

5.2 框架与C#语言版本的关系230

5.3 参考程序集231

5.4 CLR和BCL231

5.5 应用程序框架235


第6章 框架基础239

6.1 字符串与文本处理239

6.2 日期和时间252

6.3 日期和时区259

6.4 格式化和解析265

6.5 标准格式字符串与解析标记271

6.6 其他转换机制278

6.7 全球化282

6.8 操作数字283

6.9 枚举287

6.10 Guid结构体290

6.11 相等比较291

6.12 顺序比较301

6.13 实用类304


第7章 集合309

7.1 枚举309

7.2 ICollection和IList接口316

7.3 Array类320

7.4 List、Queue、Stack和Set328

7.5 字典336

7.6 自定义集合与代理342

7.7 不可变集合348

7.8 扩展相等比较和排序操作351


第8章 LINQ查询359

8.1 入门359

8.2 流式语法361

8.3 查询表达式367

8.4 延迟执行372

8.5 子查询378

8.6 构造方式381

8.7 映射方式384

8.8 解释型查询386

8.9 EF Core393

8.10 构建查询表达式404


第9章 LINQ运算符409

9.1 概述410

9.2 筛选413

9.3 映射417

9.4 连接429

9.5 排序437

9.6 分组440

9.7 集合运算符443

9.8 转换方法444

9.9 元素运算符447

9.10 聚合方法449

9.11 量词运算符453

9.12 生成序列的方法455


第10章 LINQ to XML456

10.1 架构概述456

10.2 X-DOM概述457

10.3 实例化X-DOM460

10.4 导航和查询463

10.5 更新X-DOM468

10.6 使用Value471

10.7 文档和声明474

10.8 名称和命名空间477

10.9 注解483

10.10 将数据映射到X-DOM484


第11章 其他XML与JSON技术488

11.1 XmlReader488

11.2 XmlWriter496

11.3 XmlReader/XmlWriter的使用模式498

11.4 处理JSON502


第12章 对象销毁与垃圾回收509

12.1 IDisposable接口、Dispose方法和Close方法509

12.2 自动垃圾回收514

12.3 终结器517

12.4 垃圾回收器的工作方式521

12.5 托管内存泄漏527

12.6 弱引用530


第13章 诊断534

13.1 条件编译534

13.2 Debug和Trace类537

13.3 调试器的集成541

13.4 进程与线程处理542

13.5 StackTrace和StackFrame类542

13.6 Windows事件日志544

13.7 性能计数器546

13.8 Stopwatch类551

13.9 跨平台诊断工具551


第14章 并发与异步556

14.1 概述556

14.2 线程557

14.3 任务572

14.4 异步原则580

14.5 C#的异步函数585

14.6 异步模式603

14.7 旧有的异步编程模式611


第15章 流与I/O614

15.1 流的架构614

15.2 使用流616

15.3 流适配器629

15.4 压缩流637

15.5 操作ZIP文件640

15.6 文件与目录操作641

15.7 在UWP中进行文件I/O操作652

15.8 操作系统安全性656

15.9 内存映射文件659


第16章 网络663

16.1 .NET网络架构663

16.2 地址与端口665

16.3 URI666

16.4 客户端类668

16.5 使用HTTP681

16.6 编写HTTP服务器685

16.7 使用FTP687

16.8 使用DNS689

16.9 通过SmtpClient类发送邮件690

16.10 使用TCP691

16.11 使用TCP接收POP3邮件694

16.12 在UWP中使用TCP696


第17章 序列化699

17.1 序列化的概念699

17.2 XML 序列化器703

17.3 JSON 序列化器712

17.4 二进制序列化器721

17.5 二进制序列化特性723

17.6 使用ISerializable接口进行二进制序列化725


第18章 程序集729

18.1 程序集的组成部分729

18.2 强名称和程序集签名733

18.3 程序集名称735

18.4 认证代码签名737

18.5 资源和附属程序集739

18.6 程序集的加载、解析与隔离747


第19章 反射和元数据768

19.1 反射和激活类型768

19.2 反射和调用成员775

19.3 反射程序集788

19.4 使用特性789

19.5 动态生成代码794

19.6 生成程序集和类型800

19.7 生成类型成员803

19.8 生成泛型方法和泛型类型809

19.9 复杂的生成目标811

19.10 解析IL814


第20章 动态编程820

20.1 动态语言运行时820

20.2 数值类型统一822

20.3 动态成员重载解析823

20.4 实现动态对象828

20.5 与动态语言进行互操作832


第21章 加密834

21.1 概述834

21.2 Windows数据保护835

21.3 散列算法836

21.4 对称加密837

21.5公钥加密和签名842


第22章 高级线程处理846

22.1 同步概述846

22.2 排他锁847

22.3 锁和线程安全性855

22.4 非排他锁860

22.5 使用事件等待句柄发送信号866

22.6 Barrier类874

22.7 延迟初始化875

22.8 线程本地存储877

22.9 定时器881


第23章 并行编程885

23.1 选择PFX的原因885

23.2 PLINQ888

23.3 Parallel类900

23.4 任务并行907

23.5 处理AggregateException916

23.6 并发集合919

23.7 BlockingCollection类922


第24章 Span和Memory926

24.1 Span和切片927

24.2 Memory类930

24.3 前向枚举器931

24.4 操作栈分配内存和非托管内存933


第25章 原生程序和COM组件互操作性935

25.1 调用原生DLL935

25.2 类型的封送936

25.3 非托管代码中的回调函数940

25.4 模拟C共用体941

25.5 共享内存942

25.6 将结构体映射到非托管内存944

25.7 COM互操作性948

25.8 在C#中调用COM组件950

25.9 内嵌互操作类型953

25.10 在COM中访问C#对象954


第26章 正则表达式956

26.1 正则表达式基础956

26.2 量词符号961

26.3 零宽度断言962

26.4 分组965

26.5 替换并分割文本966

26.6 正则表达式实例968

26.7 正则表达式语言参考971


第27章 Roslyn编译器975

27.1 Roslyn架构975

27.2 语法树976

27.3 编译过程和语义模型991



前言/序言

C# 8.0是Microsoft对其旗舰编程语言的第七次重大升级,这次升级极大地提高了C#语言的功能和灵活性。一方面,它提供了一些高级的抽象,例如查询表达式和异步延续;另一方面,它允许通过自定义值类型和可选的指针结构进行底层的效率优化。


C#语言特性的增长也极大地加重了我们的学习负担。虽然一些工具如Microsoft IntelliSense和在线参考文档可以提供诸多便利,但若要使用它们,仍需要一些现有的概念和知识体系作为支撑。本书以简明统一的方式(而非烦琐冗长的介绍)准确阐释了这些知识。


与之前的五个版本一样,本书也是围绕概念和用例来组织的,因此无论是顺序阅读还是随意浏览都会大有裨益。虽然本书只要求读者具备基本的背景知识,但是它仍然具有一定的深度,因此本书也适合中高级读者阅读。


本书内容涵盖C#语言、公共语言运行时(Common Language Runtime,CLR)和.NET Core核心程序集。我们之所以做出这样的选择是希望为一些难以理解的主题,例如并发、安全性以及访问操作系统功能留出足够的篇幅,而同时又不对内容的深度和可读性造成显著的影响。本书详细标记了C# 8的新特性,因此亦可同时作为C# 7的参考资料。

【目标读者】

本书主要针对中高级开发人员。本书不要求读者具备C#知识,但需要读者具备一定的通用编程经验。对于初学者,本书适合作为教材以外的补充书籍,而非替代编程教材。
本书非常适合与那些着眼于介绍具体应用技术的书籍配合阅读,例如介绍ASP.NET Core、Windows Presentation Foundation(WPF)和Universal Windows Platform(UWP)等技术的书籍。因为那些书籍往往会省略语言和.NET Core方面的内容,而这些内容正是本书的重点。

本书不适合想匆匆浏览每一种.NET技术的读者阅读,亦不适合关心特定领域(例如移动端设备开发)API使用方式的读者阅读。

【本书的结构】

本书第2~4章将详细介绍C#语言。首先介绍最基本的语法、类型和变量。而后会介绍一些高级的特性,如不安全代码以及预处理指令。如果你是C#语言的初学者,请循序渐进地阅读这些章节。
其余各章则涵盖了.NET Core的核心功能,包括语言集成查询(Language-Integrated Query,LINQ)、XML、集合、并发、I/O和网络、内存管理、反射、动态编程、特性、安全以及原生互操作性等主题。第5~6章是后续章节主题的基础,除这两章之外,其余各章可以按照需要以任何顺序阅读。LINQ相关的三章最好按顺序阅读,其中的部分章节需要一些并发相关的知识,这些知识将在第14章中介绍。
使用本书所需的其他材料


如需下载所有的示例代码,请在LINQPad底部左侧的“Samples”选项卡中单击“Download more samples”按钮,并选择“C# 8.0 in a Nutshell”。
.NET Core支持Windows、Linux和macOS。我们在Ubuntu Linux 18.04中对部分跨平台特性进行了测试。详细代码请参见GitHub(https://github.com/ericjohannsen/Nutshell8)。