- ISBN:9787111697824
- 装帧:一般胶版纸
- 册数:暂无
- 重量:暂无
- 开本:16开
- 页数:748
- 出版时间:2022-03-01
- 条形码:9787111697824 ; 978-7-111-69782-4
本书特色
适读人群 :C#开发人员,以及任何对C#语言感兴趣的读者本书全面讲述C#语言。 对于初学者而言,其内容已远远超过了一本简单的教程,可为读者未来进行高效率软件开发打下坚实基础; 对于已熟悉C#的读者,本书探讨了一些较为复杂的编程思想,并深入讨论了语言较新版本(C# 8.0和.NET Framework 4.8/.NET Core 3.1)的新功能; 对于已经精通这门语言的读者,也可以始终将其作为案头参考。 本书基于管理复杂性的宗旨来组织内容。 第1~5章介绍结构化编程,学习这些内容后,可以立即开始写一些功能简单的代码。 第6~10章介绍C#的面向对象构造,新手应在完全理解这几章的内容之后,再开始接触本书其余部分更高级的主题。 第12~14章介绍更多用于降低复杂性的构造,讲解当今几乎所有程序都要用到的通用设计模式。理解了它们之后,才可以更轻松地理解如何通过反射和特性来进行动态编程。 第15~23章将广泛运用它们来实现线程处理和互操作性。 本书*后专门用一章(第24章)讲解CLI。 这一章在开发平台的背景下对C#语言进行了描述。
内容简介
作为历年来深受各层次开发人员欢迎的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运行时之间的关系
目录
第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
作者简介
马克.米凯利斯( Mark Michaelis ) Mark Michaelis是创新型软件架构和开发公司IntelliTect的创始人、首席技术架构师和培训师。Mark领导着他的公司不断进取,同时在世界各地举办有关领导力或技术的会议,并代表微软或其他客户进行演讲。他还撰写了大量文章和书籍,并且是东华盛顿大学的客座教授、Spokane .NET用户组的创始人,以及每年一届的TEDx Coeur d'Alene活动的联合组织者。 作为世界知名的C#专家,Mark自2007年以来一直担任微软区域总监,并荣任微软MVP 超过25年。 Mark拥有伊利诺伊大学哲学专业文学学士学位和伊利诺伊理工大学计算机科学硕士学位。
-
有限与无限的游戏:一个哲学家眼中的竞技世界
¥37.4¥68.0 -
硅谷之火-人与计算机的未来
¥14.3¥39.8 -
全图解零基础word excel ppt 应用教程
¥12.0¥48.0 -
机器学习
¥59.4¥108.0 -
深度学习的数学
¥43.5¥69.0 -
智能硬件项目教程:基于ARDUINO(第2版)
¥31.9¥65.0 -
元启发式算法与背包问题研究
¥38.2¥49.0 -
AI虚拟数字人:商业模式+形象创建+视频直播+案例应用
¥62.9¥89.8 -
UNIX环境高级编程(第3版)
¥164.9¥229.0 -
剪映AI
¥52.8¥88.0 -
深度学习高手笔记 卷2:经典应用
¥90.9¥129.8 -
纹样之美:中国传统经典纹样速查手册
¥77.4¥109.0 -
UG NX 12.0数控编程
¥24.8¥45.0 -
MATLAB计算机视觉与深度学习实战(第2版)
¥90.9¥128.0 -
界面交互设计理论研究
¥30.8¥56.0 -
UN NX 12.0多轴数控编程案例教程
¥25.8¥38.0 -
微机组装与系统维护技术教程(第二版)
¥37.8¥43.0 -
Go 语言运维开发 : Kubernetes 项目实战
¥48.2¥79.0 -
明解C语言:实践篇
¥62.9¥89.8 -
Linux服务器架设实战(Linux典藏大系)
¥84.5¥119.0