C# 7.0 本質論 (Essential C# 7.0)

C# 7.0 本質論 (Essential C# 7.0)

作者: [美] 馬克米凱利斯(Mark Michaelis)
出版社: 機械工業
出版在: 2019-05-01
ISBN-13: 9787111625681
ISBN-10: 7111625684




內容描述


本書由世界級C#技術專家親筆撰寫,C#編譯器團隊開發人員技術審校,微軟公司C#項目經理作序推薦,10餘年全球暢銷不衰,廣受好評。
全書共22章。第1章是C#概述;第2章和第3章介紹C#中的數據類型;第4章討論操作符、數據轉換和預處理器指令;第5章探討方法和參數的細節;第6章講解類,它是面向對象技術的核心;第7章介紹繼承,其中包括繼承語法的細節;第8章講解接口;第9章和第10章分別介紹值類型與合式類型,解釋如何定義結構、如何實現操作符;第11章延伸討論第5章引入的異常處理機制;第12章探討泛型;第13章講解委托和Lambda表達式;第14章討論事件;第15章介紹支持標準查詢操作符的集合接口;第16章探討使用查詢表達式的LINQ;第17章講解如何構建自定義集合;第18章介紹反射、特性和動態編程的方方面面;第19章涵蓋多線程處理;第20章以第19章為基礎,演示線程同步的用法;第21章涵蓋平臺互操作性和不安全的代碼;第22章講解公共語言基礎結構,並討論C#程序與底層“運行時”及其規範的關系。

Mark非常聰明,善於打破砂鍋問到底,能深刻理解一種技術對於真正的開發人員的影響……他的文字直指技術的本質,敏銳地指出技術的真正價值和問題……沒人能像這位大師一樣幫你正確理解C# 7.0。
—— Mads Torgersen,微軟公司C# 項目經理

作為歷年來深受各層次開發人員歡迎的C#指南,本書討論了從C# 3.0到C# 7.0中最重要的C#特性,強調了現代編程模式,教你如何編寫簡潔、強大、健壯、安全且易於維護的C#代碼。
世界級C#專家Mark Michaelis對C#語言進行了全面而深入的探討,提供了針對關鍵C# 7.0增強、C# 7.0和.NET Core/.NET Standard的配合使用以及跨平臺編譯的專業論述。他用簡潔的例子闡釋了關鍵C#構造,並提供了大量優秀實踐編程規範,為你進行高效軟件開發打好基礎。

本書特色
深挖C# 7.0的諸多改進,包括元組、解構函數、模式匹配、本地函數和ref返回等
利用C#面向對象構造寫出更健壯的代碼
利用泛型、委托、Lambda表達式和事件降低代碼復雜度
利用C# 7.0跨平臺編譯在Linux或MacOS上運行代碼
全面掌握多線程處理和同步,包括async/await模式
包括C# 7.1/7.2/7.3語言增強


目錄大綱


目錄
譯者序
推薦序
前言
致謝
作者簡介
第壹章C#概述/ 1
1.1 Hello, World / 1
1.2 C#語法基礎/ 8
1.3 使用變量/ 14
1.4 控制台輸入和輸出/ 17
1.5 註釋/ 20
1.6 託管執行和CLI / 22
1.7 多個.NET框架/ 26
1.8 小結/ 28
第2章數據類型/ 29
2.1 基本數值類型/ 29
2.2 更多基本類型/ 36
2.3 null和void / 46
2.4 數據類型轉換/ 47
2.5 小結/ 52
第3章更多數據類型/ 53
3.1 類型的劃分/ 53
3.2 可空修飾符/ 55
3.3 元組/ 57
3.4 數組/ 62
3.5 小結/ 74
第4章操作符和控制流程/ 75
4.1 操作符/ 75
4.2 控制流程概述/ 87
4.3 代碼塊({}) / 91
4.4 代碼塊、作用域和聲明空間/ 93
4.5 布爾表達式/ 94
4.6 按位操作符(>,|,&,^,~) / 101
4.7 控制流程語句(續) / 106
4.8 跳轉語句/ 115
4.9 C#預處理器指令/ 119
4.10 小結/ 124
第5章方法和參數/ 126
5.1 方法的調用/ 127
5.2 方法的聲明/ 131
5.3 using指令/ 135
5.4 Main的返回值和參數/ 139
5.5 高ji方法參數/ 141
5.6 遞歸/ 149
5.7 方法重載/ 152
5.8 可選參數/ 154
5.9 用異常實現基本錯誤處理/ 157
5.10 小結/ 168
第6章類/ 169
6.1 類的聲明和實例化/ 172
6.2 實例字段/ 174
6.3 實例方法/ 176
6.4 使用this關鍵字/ 177
6.5 訪問修飾符/ 183
6.6 屬性/ 184
6.7 構造函數/ 197
6.8 靜態成員/ 205
6.9 擴展方法/ 213
6.10 封裝數據/ 214
6.11 嵌套類/ 216
6.12 分部類/ 218
6.13 小結/ 222
第7章繼承/ 223
7.1 派生/ 224
7.2 重寫基類/ 232
7.3 抽像類/ 242
7.4 所有類都從System.Object派生/ 246
7.5 使用is操作符驗證基礎類型/ 247
7.6 用is操作符進行模式匹配/ 248
7.7 switch語句中的模式匹配/ 248
7.8 使用as操作符進行轉換/ 250
7.9 小結/ 251
第8章接口/ 252
8.1 接口概述/ 253
8.2 通過接口實現多態性/ 254
8.3 接口實現/ 258
8.4 在實現類和接口之間轉換/ 262
8.5 接口繼承/ 263
8.6 多接口繼承/ 265
8.7 接口上的擴展方法/ 265
8.8 通過接口實現多繼承/ 266
8.9 版本控制/ 269
8.10 比較接口和類/ 270
8.11 比較接口和特性/ 271
8.12 小結/ 271
第9章值類型/ 272
9.1 結構/ 275
9.2 裝箱/ 279
9.3 枚舉/ 285
9.4 小結/ 293
第壹0章合式類型/ 295
10.1 重寫object的成員/ 295
10.2 操作符重載/ 305
10.3 引用其他程序集/ 311
10.4 定義命名空間/ 318
10.5 XML註釋/ 320
10.6 垃圾回收/ 323
10.7 資源清理/ 325
10.8 推遲初始化/ 332
10.9 小結/ 333
第壹1章異常處理/ 334
11.1 多異常類型/ 334
11.2 捕捉異常/ 336
11.3 常規catch塊/ 339
11.4 異常處理規範/ 341
11.5 自定義異常/ 343
11.6 重新拋出包裝的異常/ 346
11.7 小結/ 349
第壹2章泛型/ 350
12.1 如果C#沒有泛型/ 350
12.2 泛型類型概述/ 355
12.3 約束/ 364
12.4 泛型方法/ 374
12.5 協變性和逆變性/ 377
12.6 泛型的內部機制/ 382
12.7 小結/ 385
第壹3章委託和Lambda表達式/ 386
13.1 委託概述/ 387
13.2 聲明委託類型/ 390
13.3 Lambda表達式/ 396
13.4 匿名方法/ 401
13.5 小結/ 413
第壹4章事件/ 414
14.1 使用多播委託編碼Publish-Subscribe模式/ 415
14.2 理解事件/ 426
14.3 小結/ 435
第壹5章支持標準查詢操作符的集合接口/ 436
15.1 集合初始化器/ 437
15.2 IEnumerable使類成為集合/ 439
15.3 標準查詢操作符/ 444
15.4 匿名類型之於LINQ / 470
15.5 小結/ 477
第壹6章使用查詢表達式的LINQ / 478
16.1 查詢表達式概述/ 478
16.2 查詢表達式只是方法調用/ 493
16.3 小結/ 494
第壹7章構建自定義集合/ 496
17.1 更多集合接口/ 497
17.2 主要集合類/ 498
17.3 提供索引器/ 512
17.4 返回null或者空集合/ 515
17.5 迭代器/ 515
17.6 小結/ 527
第壹8章反射、特性和動態編程/ 528
18.1 反射/ 528
18.2 特性/ 539
18.3 使用動態對象進行編程/ 557
18.4 小結/ 565
第壹9章多線程處理/ 566
19.1 多線程處理基礎/ 568
19.2 使用System.Threading / 572
19.3 異步任務/ 577
19.4 取消任務/ 591
19.5 基於任務的異步模式/ 596
19.6 並行迭代/ 618
19.7 並行執行LINQ查詢/ 626
19.8 小結/ 630
第20章線程同步/ 631
20.1 線程同步的意義/ 632
20.2 計時器/ 653
20.3 小結/ 655
第21章平台互操作性和不安全代碼/ 656
21.1 平台調用/ 657
21.2 指針和地址/ 667
21.3 通過委託執行不安全代碼/ 674
21.4 小結/ 676
第22章公共語言基礎結構/ 677
22.1 CLI的定義/ 677
22.2 CLI的實現/ 678
22.3 .NET Standard / 680
22.4 BCL / 681
22.5 將C#編譯成機器碼/ 681
22.6 運行時/ 682
22.7 程序集、清單和模塊/ 685
22.8 公共中間語言/ 687
22.9 公共類型系統/ 687
22.10 公共語言規範/ 688
22.11 元數據/ 688
22.12 .NET Native和AOT編譯/ 689
22.13 小結/ 689


作者介紹


Mark Michaelis是高端軟件工程和諮詢公司IntelliTect的創辦者、首席技術架構師和培訓師。 Mark經常在開發者大會上發言,寫過許多文章和書籍,目前是《MSDN Magazine》的《Essential.NET》專欄作家。 從1996年起,他一直是C#、Visual Studio Team System和Windows SDK的MVP。 2007年被評選為微軟的Regional Director。他還服務於微軟的幾個軟件設計評審團隊,包括C#和VSTS。




相關書籍

Java EE 開發技術與案例教程, 2/e

作者 劉彥君

2019-05-01

Professional Java Development with the Spring Framework (Paperback)

作者 Rod Johnson J?rgen H?ller Alef Arendsen Thomas Risberg Colin Sampaleanu

2019-05-01

Clojure High Performance Programming (Paperback)

作者 Shantanu Kumar

2019-05-01