《C#8.0本质论》(华章科技·名家经典系列)马克·米凯利斯【文字版_PDF电子书_下载】

《C#8.0本质论》封面图片
书名:C#8.0本质论
作者:MarkMichaelis
出版社:机械工业出版社
译者:周翀
出版日期:2022-3-1
页数:748
ISBN:9787111697824
0.0
豆瓣短评

前往下载

当当正版

亚马逊购买

全网资源

内容简介:

作为历年来深受各层次开发人员欢迎的C#指南,本书讨论了C# 3.0到C# 8.0中的重要C#特性,强调了现代编程模式,可帮助读者编写简洁、强大、健壮、安全且易于维护的C#代码。

在本书中,世界知名C#专家Mark Michaelis对C#语言进行了全面而深入的探讨,并提供了关于空引用类型、索引和区间、增强模式匹配、异步流等关键C# 8.0增强功能的专业论述。他用简洁的例子阐释关键C#构造,并提供了大量优秀实践编程规范,可为你快速掌握专家级C#编程技能并进行高效软件开发提供翔实指导。

本书内容:

使用结构化编程构造直接编写功能代码

了解可空引用类型的复杂性和解决方案

彻底掌握C#对象构造,包括类、继承和接口

使用泛型、委托、lambda表达式和事件减少代码冗余

充分利用集合,包括新的标准查询运算符集合API

充分利用反射、属性和声明式编程范式

使用基于任务的异步模式和C# 8.0异步流改进多线程处理

通过并行处理数据和多线程任务提高性能

使用增强的模式匹配语法编写复杂类型

与用其他语言编写的非托管代码(包括基于C的API)进行互操作

探索C#程序与底层CLI运行时之间的关系

作者简介:

马克.米凯利斯( Mark Michaelis )

Mark Michaelis是创新型软件架构和开发公司IntelliTect的创始人、首席技术架构师和培训师。Mark领导着他的公司不断进取,同时在世界各地举办有关领导力或技术的会议,并代表微软或其他客户进行演讲。他还撰写了大量文章和书籍,并且是东华盛顿大学的客座教授、Spokane .NET用户组的创始人,以及每年一届的TEDx Coeur d'Alene活动的联合组织者。

作为世界知名的C#专家,Mark自2007年以来一直担任微软区域总监,并荣任微软MVP 超过25年。

Mark拥有伊利诺伊大学哲学专业文学学士学位和伊利诺伊理工大学计算机科学硕士学位。

目  录:

第1章 C# 概述 / 1

1.1 Hello, World / 2

1.2 C#语法基础 / 9

1.3 使用变量 / 16

1.4 控制台输入和输出 / 18

1.5 托管执行和CLI / 24

1.6 多个.NET框架 / 28

1.7 小结 / 30

第2章 数据类型 / 31

2.1 基本数值类型 / 31

2.2 更多基本类型 / 38

2.3 数据类型转换 / 49

2.4 小结 / 55

第3章 更多数据类型 / 56

3.1 类型的划分 / 56

3.2 将变量声明为可空 / 58

3.3 隐式类型的局部变量 / 62

3.4 元组 / 64

3.5 数组 / 68

3.6 小结 / 82

第4章 操作符和控制流程 / 83

4.1 操作符 / 83

4.2 控制流程概述 / 95

4.3 代码块 / 99

4.4 代码块、作用域和声明空间 / 101

4.5 布尔表达式 / 102

4.6 关于null的编程 / 107

4.7 按位操作符 / 112

4.8 控制流程语句 / 116

4.9 跳转语句 / 124

4.10 C#预处理器指令 / 129

4.11 小结 / 135

第5章 方法和参数 / 136

5.1 方法的调用 / 137

5.2 方法的声明 / 141

5.3 using指令 / 145

5.4 Main()的返回值和参数 / 149

5.5 高级方法参数 / 151

5.6 递归 / 159

5.7 方法重载 / 162

5.8 可选参数 / 164

5.9 用异常实现基本错误处理 / 167

5.10 小结 / 178

第6章 类 / 179

6.1 类的声明和实例化 / 182

6.2 实例字段 / 184

6.3 实例方法 / 186

6.4 使用this关键字 / 187

6.5 访问修饰符 / 193

6.6 属性 / 194

6.7 构造函数 / 207

6.8 不可空引用类型属性与构造函数 / 214

6.9 可空特性 / 217

6.10 解构函数 / 219

6.11 静态成员 / 220

6.12 扩展方法 / 228

6.13 封装数据 / 229

6.14 嵌套类 / 231

6.15 分部类 / 233

6.16 小结 / 236

第7章 继承 / 237

7.1 派生 / 238

7.2 重写基类 / 244

7.3 抽象类 / 253

7.4 所有类都从System.Object派生 / 258

7.5 用is操作符进行模式匹配 / 259

7.6 switch语句中的模式匹配 / 264

7.7 避免对多态类对象使用模式匹配 / 265

7.8 小结 / 267

第8章 接口 / 268

8.1 接口概述 / 269

8.2 通过接口实现多态性 / 270

8.3 接口实现 / 274

8.4 在实现类和接口之间转换 / 278

8.5 接口继承 / 278

8.6 多接口继承 / 280

8.7 接口上的扩展方法 / 281

8.8 版本升级 / 283

8.9 扩展方法与默认接口成员 / 295

8.10 比较接口和抽象类 / 296

8.11 比较接口和特性 / 297

8.12 小结 / 297

第9章 值类型 / 298

9.1 结构 / 301

9.2 装箱 / 305

9.3 枚举 / 311

9.4 小结 / 319

第10章 合式类型 / 321

10.1 重写object的成员 / 321

10.2 操作符重载 / 331

10.3 引用其他程序集 / 337

10.4 类型封装 / 342

10.5 定义命名空间 / 343

10.6 XML注释 / 346

10.7 垃圾回收 / 349

10.8 资源清理 / 352

10.9 推迟初始化 / 363

10.10 小结 / 365

第11章 异常处理 / 366

11.1 多异常类型 / 366

11.2 捕捉异常 / 368

11.3 重新抛出现有异常 / 370

11.4 常规catch块 / 371

11.5 异常处理规范 / 372

11.6 自定义异常 / 374

11.7 重新抛出包装的异常 / 377

11.8 小结 / 380

第12章 泛型 / 381

12.1 如果C#没有泛型 / 381

12.2 泛型类型概述 / 386

12.3 约束 / 395

12.4 泛型方法 / 407

12.5 协变性和逆变性 / 411

12.6 泛型的内部机制 / 416

12.7 小结 / 419

第13章 委托和Lambda表达式 / 420

13.1 委托概述 / 421

13.2 声明委托类型 / 424

13.3 Lambda表达式 / 430

13.4 匿名方法 / 435

13.5 委托没有结构相等性 / 436

13.6 外部变量 / 438

13.7 表达式树 / 441

13.8 小结 / 447

第14章 事件 / 448

14.1 使用多播委托实现Publish-Subscribe模式 / 449

14.2 理解事件 / 460

14.3 小结 / 468

第15章 支持标准查询操作符的集合接口 / 469

15.1 集合初始化器 / 470

15.2 IEnumerable使类成为集合 / 472

15.3 标准查询操作符 / 476

15.4 匿名类型之于LINQ / 503

15.5 小结 / 509

第16章 使用查询表达式的LINQ / 510

16.1 查询表达式概述 / 510

16.2 查询表达式只是方法调用 / 525

16.3 小结 / 526

第17章 构建自定义集合 / 528

17.1 更多集合接口 / 529

17.2 主要集合类 / 530

17.3 提供索引器 / 544

17.4 返回null或者空集合 / 547

17.5 迭代器 / 547

17.6 小结 / 559

第18章 反射、特性和动态编程 / 560

18.1 反射 / 560

18.2 nameof操作符 / 569

18.3 特性 / 571

18.4 使用动态对象进行编程 / 585

18.5 小结 / 592

第19章 多线程概述 / 594

19.1 多线程基础 / 595

19.2 异步任务 / 600

19.3 取消任务 / 614

19.4 使用System.Threading / 618

19.5 总结 / 619

第20章 基于任务的异步模式编程 / 620

20.1 同步执行高延迟操作 / 621

20.2 使用TPL实现异步执行高延迟操作 / 623

20.3 使用async/await实现基于任务的异步模式 / 627

20.4 异步返回值ValueTask / 632

20.5 异步流 / 633

20.6 IAsyncDisposable接口以及await using声明和语句 / 637

20.7 使用LINQ和IAsync-Enumerable / 637

20.8 返回void的异步方法 / 639

20.9 异步Lambda表达式和本地函数 / 642

20.10 任务调度器和同步上下文 / 647

20.11 在Windows UI程序中使用async/await / 649

20.12 小结 / 652

第21章 并行迭代 / 653

21.1 并行执行循环迭代 / 653

21.2 并行执行LINQ查询 / 661

21.3 小结 / 666

第22章 线程同步 / 667

22.1 线程同步的意义 / 668

22.2 计时器 / 689

22.3 小结 / 691

第23章 平台互操作性和不安全代码 / 692

23.1 平台调用 / 693

23.2 指针和地址 / 703

23.3 通过委托执行不安全代码 / 710

23.4 小结 / 711

第24章 公共语言基础结构 / 712

24.1 CLI的定义 / 712

24.2 CLI的实现 / 713

24.3 .NET Standard / 715

24.4 基类库 / 716

24.5 将C#编译成机器码 / 716

24.6 运行时 / 717

24.7 程序集、清单和模块 / 720

24.8 公共中间语言 / 722

24.9 公共类型系统 / 722

24.10 公共语言规范 / 723

24.11 元数据 / 723

24.12 .NET Native和AOT编译 / 724

24.13 小结 / 724