C# 8.0本质论

This document was uploaded by one of our users. The uploader already confirmed that they had the permission to publish it. If you are author/publisher or own the copyright of this documents, please report to us by using this DMCA report form.

Simply click on the Download Book button.

Yes, Book downloads on Ebookily are 100% Free.

Sometimes the book is free on Amazon As well, so go ahead and hit "Search on Amazon"

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

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

本书内容:

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

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

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

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

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

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

使用基于...

作为历年来深受各层次开发人员欢迎的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运行时之间的关系

Author(s): Mark Michaelis
Series: 华章科技·名家经典系列
Edition: 7
Publisher: 机械工业出版社
Year: 2022

Language: Chinese
Pages: 748
Tags: C#

目录
译者序
序言
前言
致谢
作者简介
第1章 C#概述
1.1 Hello, World
1.2 C#语法基础
1.3 使用变量
1.4 控制台输入和输出
1.5 托管执行和CLI
1.6 多个.NET框架
1.7 小结
第2章 数据类型
2.1 基本数值类型
2.2 更多基本类型
2.3 数据类型转换
2.4 小结
第3章 更多数据类型
3.1 类型的划分
3.2 将变量声明为可空
3.3 隐式类型的局部变量
3.4 元组
3.5 数组
3.6 小结
第4章 操作符和控制流程
4.1 操作符
4.2 控制流程概述
4.3 代码块
4.4 代码块、作用域和声明空间
4.5 布尔表达式
4.6 关于null的编程
4.7 按位操作符
4.8 控制流程语句
4.9 跳转语句
4.10 C#预处理器指令
4.11 小结
第5章 方法和参数
5.1 方法的调用
5.2 方法的声明
5.3 using指令
5.4 Main()的返回值和参数
5.5 高级方法参数
5.6 递归
5.7 方法重载
5.8 可选参数
5.9 用异常实现基本错误处理
5.10 小结
第6章 类
6.1 类的声明和实例化
6.2 实例字段
6.3 实例方法
6.4 使用this关键字
6.5 访问修饰符
6.6 属性
6.7 构造函数
6.8 不可空引用类型属性与构造函数
6.9 可空特性
6.10 解构函数
6.11 静态成员
6.12 扩展方法
6.13 封装数据
6.14 嵌套类
6.15 分部类
6.16 小结
第7章 继承
7.1 派生
7.2 重写基类
7.3 抽象类
7.4 所有类都从System.Object派生
7.5 用is操作符进行模式匹配
7.6 switch语句中的模式匹配
7.7 避免对多态类对象使用模式匹配
7.8 小结
第8章 接口
8.1 接口概述
8.2 通过接口实现多态性
8.3 接口实现
8.4 在实现类和接口之间转换
8.5 接口继承
8.6 多接口继承
8.7 接口上的扩展方法
8.8 版本升级
8.9 扩展方法与默认接口成员
8.10 比较接口和抽象类
8.11 比较接口和特性
8.12 小结
第9章 值类型
9.1 结构
9.2 装箱
9.3 枚举
9.4 小结
第10章 合式类型
10.1 重写object的成员
10.2 操作符重载
10.3 引用其他程序集
10.4 类型封装
10.5 定义命名空间
10.6 XML注释
10.7 垃圾回收
10.8 资源清理
10.9 推迟初始化
10.10 小结
第11章 异常处理
11.1 多异常类型
11.2 捕捉异常
11.3 重新抛出现有异常
11.4 常规catch块
11.5 异常处理规范
11.6 自定义异常
11.7 重新抛出包装的异常
11.8 小结
第12章 泛型
12.1 如果C#没有泛型
12.2 泛型类型概述
12.3 约束
12.4 泛型方法
12.5 协变性和逆变性
12.6 泛型的内部机制
12.7 小结
第13章 委托和Lambda表达式
13.1 委托概述
13.2 声明委托类型
13.3 Lambda表达式
13.4 匿名方法
13.5 委托没有结构相等性
13.6 外部变量
13.7 表达式树
13.8 小结
第14章 事件
14.1 使用多播委托实现Publish-Subscribe模式
14.2 理解事件
14.3 小结
第15章 支持标准查询操作符的集合接口
15.1 集合初始化器
15.2 IEnumerable使类成为集合
15.3 标准查询操作符
15.4 匿名类型之于LINQ
15.5 小结
第16章 使用查询表达式的LINQ
16.1 查询表达式概述
16.2 查询表达式只是方法调用
16.3 小结
第17章 构建自定义集合
17.1 更多集合接口
17.2 主要集合类
17.3 提供索引器
17.4 返回null或者空集合
17.5 迭代器
17.6 小结
第18章 反射、特性和动态编程
18.1 反射
18.2 nameof操作符
18.3 特性
18.4 使用动态对象进行编程
18.5 小结
第19章 多线程概述
19.1 多线程基础
19.2 异步任务
19.3 取消任务
19.4 使用System.Threading
19.5 总结
第20章 基于任务的异步模式编程
20.1 同步执行高延迟操作
20.2 使用TPL实现异步执行高延迟操作
20.3 使用async/await实现基于任务的异步模式
20.4 异步返回值ValueTask
20.5 异步流
20.6 IAsyncDisposable接口以及await using声明和语句
20.7 使用LINQ和IAsyncEnumerable
20.8 返回void的异步方法
20.9 异步Lambda表达式和本地函数
20.10 任务调度器和同步上下文
20.11 在Windows UI程序中使用async/await
20.12 小结
第21章 并行迭代
21.1 并行执行循环迭代
21.2 并行执行LINQ查询
21.3 小结
第22章 线程同步
22.1 线程同步的意义
22.2 计时器
22.3 小结
第23章 平台互操作性和不安全代码
23.1 平台调用
23.2 指针和地址
23.3 通过委托执行不安全代码
23.4 小结
第24章 公共语言基础结构
24.1 CLI的定义
24.2 CLI的实现
24.3 .NET Standard
24.4 基类库
24.5 将C#编译成机器码
24.6 运行时
24.7 程序集、清单和模块
24.8 公共中间语言
24.9 公共类型系统
24.10 公共语言规范
24.11 元数据
24.12 .NET Native和AOT编译
24.13 小结