《C# 8.0本质论》是由机械工业出版社出版的一本关于C#方面的书籍,作者是马克·米凯利斯,主要介绍了关于C#方面的知识内容,目前在C#类书籍综合评分为:9.5分。
书籍介绍
内容简介
作为历年来深受各层次开发人员欢迎的C#指南,本书讨论了从C#3.0到8.0的重要的C#特性,强调了现代编程模式,可帮助读者编写简洁、强大、健壮、安全和易于维护的C#代码。C#专家MarkMichaelis对语言进行了全面而深入的探讨,提供了对关键C#8.0增强、C#8.0和.NETCore/.NETStandard的配合使用以及跨平台编译的专业论述。他用简洁的例子阐释了关键C#构造,并提供了大量实践编程规范,为你进行高效软件开发打好基础。
目录
- 译者序
- 序言
- 前言
- 致谢
- 作者简介
- 第1章C#概述/1
- 1.1Hello,World/2
- 1.2C#语法基础/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.10C#预处理器指令/129
- 4.11小结/135
- 第5章方法和参数/136
- 5.1方法的调用/137
- 5.2方法的声明/141
- 5.3using指令/145
- 5.4Main()的返回值和参数/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.6switch语句中的模式匹配/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.6XML注释/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.3Lambda表达式/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.2IEnumerable使类成为集合/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.2nameof操作符/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