深入CLR(第4版 中文限量版)
[美]傑弗瑞·李希特(Jeffrey Richter)著 周靖 譯
- 出版商: 清華大學
- 出版日期: 2024-07-01
- 售價: $1,188
- 貴賓價: 9.5 折 $1,129
- 語言: 簡體中文
- 頁數: 855
- ISBN: 730266126X
- ISBN-13: 9787302661269
- 此書翻譯自: CLR via C#, 4/e (Paperback)
-
相關翻譯:
CLR via C#, 4/e (簡體中文版) (簡中版)
立即出貨 (庫存 < 4)
買這商品的人也買了...
-
$580$452 -
$360$281 -
$720$562 -
$594$564 -
$780$616 -
$960$749 -
$607Orleans:構建高性能分佈式Actor服務
-
$580$458
相關主題
商品描述
"《深入CLR(第4版 中文限量版)》針對CLR和.NET Framework 4.5(及更高版本)進行深入、全面的探討,並結合實例介紹瞭如何利用它們進行設計、開發和調試。全書分5部分共30章。第Ⅰ部分介紹CLR基礎,第Ⅱ部分解釋如何設計類型,第Ⅲ部分介紹基本類型,第Ⅳ部分以核心機制為主題展開介紹,第Ⅴ部分重點介紹線程處理。 通過本書的閱讀,讀者可以掌握CLR和.NET Framework的精髓,輕松、高效地創建高性能應用程序。"
目錄大綱
簡明目錄
第I部分 CLR基礎
第1章 CLR的執行模型
第2章 生成、打包、部署和管理應用程序及類型
第3章 共享程序集和強命名程序集
第Ⅱ部分 設計類型
第4章 類型基礎
第5章 基元類型、引用類型和值類型
第6章 類型和成員基礎
第7章 常量和字段
第8章 方法
第9章 參數
第10章 屬性
第11章 事件
第12章 泛型
第13章 接口
第Ⅲ部分 基本類型
第14章 字符、字符串和文本處理
第15章 枚舉類型和位標志
第16章 數組
第17章 委托
第18章 定製特性
第19章 可空值類型
第Ⅳ部分 核心機制
第20章 異常和狀態管理
第21章 托管堆和垃圾回收
第22章 CLR寄宿和AppDomain
第23章 程序集加載和反射
第24章 運行時序列化
第25章 與WinRT組件互操作
第Ⅴ部分 線程處理
第26章 線程基礎
第27章 計算限制的異步操作
第28章 I/O限制的異步操作
第29章 基元線程同步構造
第30章 混合線程同步構造
術語表
詳細目錄
第I部分 CLR基礎
第1章 CLR的執行模型 003
1.1 將源代碼編譯成托管模塊 003
1.2 將托管模塊合並成程序集 007
1.3 加載公共語言運行時(CLR) 008
1.4 執行程序集的代碼 011
1.4.1 IL和驗證 017
1.4.2 不安全的代碼 018
1.5 本機代碼生成器NGen.exe 020
1.6 Framework類庫簡介 022
1.7 通用類型系統 025
1.8 公共語言規範 027
1.9 與非托管代碼的互操作性 031
第2章 生成、打包、部署和管理應用程序及類型 033
2.1 .NET Framework部署目標 034
2.2 將類型生成到模塊中 035
2.3 元數據概述 038
2.4 將模塊合並成程序集 045
2.4.1 使用Visual Studio IDE將程序集添加到項目中 052
2.4.2 使用程序集鏈接器 053
2.4.3 為程序集添加資源文件 054
2.5 程序集版本資源信息 055
2.6 語言文化 060
2.7 簡單應用程序部署(私有部署的程序集) 061
2.8 簡單管理控制(配置) 063
第3章 共享程序集和強命名程序集 067
3.1 兩種程序集,兩種部署 068
3.2 為程序集分配強名稱 069
3.3 全局程序集緩存 074
3.4 在生成的程序集中引用強命名程序集 076
3.5 強命名程序集能防篡改 077
3.6 延遲簽名 078
3.7 私有部署強命名程序集 081
3.8 “運行時”如何解析類型引用 082
3.9 高級管理控制(配置) 085
第Ⅱ部分 設計類型
第4章 類型基礎 093
4.1 所有類型都從System.Object派生 093
4.2 類型轉換 095
4.3 命名空間和程序集 100
4.4 在運行時的相互關系 104
第5章 基元類型、引用類型和值類型 113
5.1 編程語言的基元類型 113
5.2 引用類型和值類型 121
5.3 值類型的裝箱和拆箱 127
5.3.1 使用接口更改已裝箱值類型中的字段(以及為何不該這樣做) 139
5.3.2 對象相等性和同一性 142
5.4 對象哈希碼 145
5.5 dynamic基元類型 147
第6章 類型和成員基礎 155
6.1 類型的各種成員 155
6.2 類型的可見性 158
6.3 成員的可訪問性 160
6.4 靜態類 162
6.5 分部類、結構和接口 163
6.6 組件、多態和版本控制 164
6.6.1 CLR如何調用虛方法、屬性和事件 167
6.6.2 合理使用類型的可見性和成員的可訪問性 171
6.6.3 對類型進行版本控制時的虛方法的處理 173
第7章 常量和字段 179
7.1 常量 179
7.2 字段 181
第8章 方法 185
8.1 實例構造器和類(引用類型) 185
8.2 實例構造器和結構(值類型) 189
8.3 類型構造器 192
8.4 操作符重載方法 196
8.5 轉換操作符方法 200
8.6 擴展方法 204
8.6.1 規則和指導原則 206
8.6.2 用擴展方法擴展各種類型 207
8.6.3 ExtensionAttribute類 209
8.7 分部方法 210
第9章 參數 215
9.1 可選參數和命名參數 215
9.1.1 規則和指導原則 217
9.1.2 DefaultParameterValue特性和Optional特性 218
9.2 隱式類型的局部變量 219
9.3 以傳引用的方式向方法傳遞參數 221
9.4 向方法傳遞可變量量的參數 227
9.5 參數和返回類型的設計規範 229
9.6 常量性 231
第10章 屬性 233
10.1 無參屬性 233
10.1.1 自動實現的屬性 237
10.1.2 合理定義屬性 238
10.1.3 對象和集合初始化器 241
10.1.4 匿名類型 243
10.1.5 System.Tuple類型 246
10.2 有參屬性 248
10.3 調用屬性訪問器方法時的性能 253
10.4 屬性訪問器的可訪問性 254
10.5 泛型屬性訪問器方法 254
第11章 事件 255
11.1 設計要公開事件的類型 257
11.1.1 第一步:定義類型來容納所有需要發送給事件通知接收者的附加信息 257
11.1.2 第二步:定義事件成員 258
11.1.3 第三步:定義負責引發事件的方法來通知事件的登記對象 259
11.1.4 第四步:定義方法將輸入轉化為期望事件 262
11.2 編譯器如何實現事件 262
11.3 設計偵聽事件的類型 264
11.4 顯式實現事件 266
第12章 泛型 271
12.1 FCL中的泛型 276
12.2 泛型基礎結構 277
12.2.1 開放類型和封閉類型 278
12.2.2 泛型類型和繼承 280
12.2.3 泛型類型同一性 282
12.2.4 代碼爆炸 283
12.3 泛型接口 284
12.4 泛型委托 285
12.5 委托和接口的逆變和協變泛型類型實參 286
12.6 泛型方法 288
12.7 泛型和其他成員 291
12.8 可驗證性和約束 291
12.8.1 主要約束 294
12.8.2 次要約束 295
12.8.3 構造器約束 296
12.8.4 其他可驗證性問題 297
第13章 接口 301
13.1 類和接口繼承 302
13.2 定義接口 302
13.3 繼承接口 304
13.4 關於調用接口方法的更多探討 306
13.5 隱式和顯式接口方法實現(幕後機制) 308
13.6 泛型接口 309
13.7 泛型和接口約束 312
13.8 實現多個具有相同方法名和簽名的接口 313
13.9 用顯式接口方法實現來增強編譯時類型安全性 314
13.10 謹慎使用顯式接口方法實現 316
13.11 設計:基類還是接口 319
第Ⅲ部分 基本類型
第14章 字符、字符串和文本處理 323
14.1 字符 323
14.2 System.String類型 327
14.2.1 構造字符串 327
14.2.2 字符串是不可變的 329
14.2.3 比較字符串 330
14.2.4 字符串留用 337
14.2.5 字符串池 340
14.2.6 檢查字符串中的字符和文本元素 340
14.2.7 其他字符串操作 342
14.3 高效率構造字符串 343
14.3.1 構造StringBuilder對象 343
14.3.2 StringBuilder的成員 344
14.4 獲取對象的字符串表示:ToString 347
14.4.1 指定具體的格式和語言文化 347
14.4.2 將多個對象格式化成一個字符串 352
14.4.3 提供定製格式化器 353
14.5 解析字符串來獲取對象:Parse 356
14.6 編碼:字符和字節的相互轉換 358
14.6.1 字符和字節流的編碼和解碼 364
14.6.2 Base-64字符串編碼和解碼 365
14.7 安全字符串 366
第15章 枚舉類型和位標志 371
15.1 枚舉類型 371
15.2 位標志 378
15.3 向枚舉類型添加方法 381
第16章 數組 383
16.1 初始化數組元素 386
16.2 數組轉型 388
16.3 所有數組都隱式派生自System.Array 391
16.4 所有數組都隱式實現IEnumerable、ICollection和IList 391
16.5 數組的傳遞和返回 392
16.6 創建下限非零的數組 393
16.7 數組的內部工作原理 395
16.8 不安全的數組訪問和固定大小的數組 399
第17章 委托 403
17.1 初識委托 403
17.2 用委托回調靜態方法 406
17.3 用委托回調實例方法 408
17.4 委托揭秘 408
17.5 用委托回調多個方法(委托鏈) 412
17.5.1 C#語言對委托鏈的支持 417
17.5.2 取得對委托鏈調用的更多控制 417
17.6 委托定義不要太多(泛型委托) 420
17.7 C#為委托提供的簡化語法 421
17.7.1 簡化語法1:不需要構造委托對象 422
17.7.2 簡化語法2:不需要定義回調方法(lambda表達式) 422
17.7.3 簡化語法3:局部變量不需要手動包裝到類中即可傳給回調方法 426
17.8 委托和反射 429
第18章 定製特性 433
18.1 使用定製特性 434
18.2 定義自己的特性類 437
18.3 特性構造器和字段/屬性數據類型 441
18.4 檢測定製特性 442
18.5 兩個特性實例的相互匹配 447
18.6 檢測定製特性時不創建從Attribute派生的對象 450
18.7 條件特性類 453
第19章 可空值類型 455
19.1 C#語言對可空值類型的支持 457
19.2 C#語言的空接合操作符 460
19.3 CLR對可空值類型的特殊支持 461
19.3.1 可空值類型的裝箱 462
19.3.2 可空值類型的拆箱 462
19.3.3 通過可空值類型調用GetType 463
19.3.4 通過可空值類型調用接口方法 463
第Ⅳ部分 核心機制
第20章 異常和狀態管理 467
20.1 定義“異常” 468
20.2 異常處理機制 469
20.2.1 try塊 470
20.2.2 catch塊 471
20.2.3 finally塊 473
20.3 System.Exception類 476
20.4 FCL定義的異常類 480
20.5 拋出異常 484
20.6 定義自己的異常類 485
20.7 犧牲可靠性來換取開發效率 488
20.8 設計規範和最佳實踐 497
20.8.1 善用finally塊 497
20.8.2 不要什麽都捕捉 499
20.8.3 得體地從異常中恢復 500
20.8.4 發生不可恢復的異常時回滾部分完成的操作——維持狀態 501
20.8.5 隱藏實現細節來維系協定 502
20.9 未處理的異常 505
20.10 對異常進行調試 509
20.11 異常處理的性能問題 511
20.12 約束執行區域(CER) 514
20.13 代碼協定 517
第21章 托管堆和垃圾回收 525
21.1 托管堆基礎 525
21.1.1 從托管堆分配資源 526
21.1.2 垃圾回收算法 527
21.1.3 垃圾回收和調試 530
21.2 代:提升性能 533
21.2.1 垃圾回收觸發條件 538
21.2.2 大對象 539
21.2.3 垃圾回收模式 539
21.2.4 強制垃圾回收 542
21.2.5 監視應用程序的內存使用 544
21.3 使用需要特殊清理的類型 545
21.3.1 使用包裝了本機資源的類型 552
21.3.2 一個有趣的依賴性問題 557
21.3.3 GC為本機資源提供的其他功能 558
21.3.4 終結的內部工作原理 563
21.3.5 手動監視和控制對象的生存期 565
第22章 CLR寄宿和AppDomain 573
22.1 CLR寄宿 574
22.2 AppDomain 576
22.3 卸載AppDomain 590
22.4 監視AppDomain 592
22.5 AppDomain FirstChance異常通知 594
22.6 宿主如何使用AppDomain 594
22.6.1 可執行應用程序 594
22.6.2 Silverlight富Internet應用程序 595
22.6.3 ASP.NET和XML Web服務應用程序 595
22.6.4 SQL Server 596
22.6.5 更多的用法只局限於想象力 596
22.7 高級宿主控制 597
22.7.1 使用托管代碼管理CLR 597
22.7.2 寫健壯的宿主應用程序 598
22.7.3 宿主如何拿回它的線程 599
第23章 程序集加載和反射 603
23.1 程序集加載 604
23.2 使用反射構建動態可擴展應用程序 609
23.3 反射的性能 610
23.3.1 發現程序集中定義的類型 610
23.3.2 類型對象的準確含義 611
23.3.3 構建Exception派生類型的層次結構 613
23.3.4 構造類型的實例 615
23.4 設計支持加載項的應用程序 618
23.5 使用反射發現類型的成員 620
23.5.1 發現類型的成員 621
23.5.2 調用類型的成員 625
23.5.3 使用綁定句柄減少進程的內存消耗 631
第24章 運行時序列化 635
24.1 序列化/反序列化快速入門 637
24.2 使類型可序列化 641
24.3 控制序列化和反序列化 643
24.4 格式化器如何序列化類型實例 647
24.5 控制序列化/反序列化的數據 648
24.6 流上下文 655
24.7 類型序列化為不同類型,對象反序列化為不同對象 657
24.8 序列化代理 660
24.9 反序列化對象時重寫程序集/類型 665
第25章 與WinRT組件互操作 667
25.1 CLR投射與WinRT組件類型系統規則 669
25.2 框架投射 673
25.2.1 從.NET代碼中調用異步WinRT API 674
25.2.2 WinRT流和.NET流之間的互操作 678
25.2.3 在CLR和WinRT之間傳輸數據塊 680
25.3 用C#語言定義WinRT組件 683
第Ⅴ部分 線程處理
第26章 線程基礎 693
26.1 Windows為什麽要支持線程 694
26.2 線程開銷 695
26.3 停止瘋狂 698
26.4 CPU發展趨勢 701
26.5 CLR線程和Windows線程 702
26.6 使用專用線程執行異步的計算限制操作 703
26.7 使用線程的理由 705
26.8 線程調度和優先級 707
26.9 前臺線程和後台線程 712
26.10 深入學習 714
第27章 計算限制的異步操作 715
27.1 CLR線程池基礎 716
27.2 執行簡單的計算限制操作 717
27.3 執行上下文 718
27.4 協作式取消和超時 720
27.5 任務 725
27.5.1 等待任務完成並獲取結果 726
27.5.2 取消任務 728
27.5.3 任務完成時自動啟動新任務 730
27.5.4 任務可以啟動子任務 732
27.5.5 任務內部揭秘 733
27.5.6 任務工廠 735
27.5.7 任務調度器 737
27.6 Parallel的靜態方法For、ForEach和Invoke 739
27.7 並行語言集成查詢(PLINQ) 743
27.8 執行定時計算限制操作 746
27.9 線程池如何管理線程 750
27.9.1 設置線程池限制 750
27.9.2 如何管理工作者線程 751
第28章 I/O限制的異步操作 753
28.1 Windows如何執行I/O操作 754
28.2 C#的異步函數 758
28.3 編譯器如何將異步函數轉換成狀態機 760
28.4 異步函數擴展性 764
28.5 異步函數和事件處理程序 768
28.6 FCL的異步函數 768
28.7 異步函數和異常處理 770
28.8 異步函數的其他功能 771
28.9 應用程序及其線程處理模型 774
28.10 以異步方式實現服務器 777
28.11 取消I/O操作 777
28.12 有的I/O操作必須同步進行 779
28.13 I/O請求優先級 780
第29章 基元線程同步構造 783
29.1 類庫和線程安全 785
29.2 基元用戶模式和內核模式構造 786
29.3 用戶模式構造 788
29.3.1 易變構造 789
29.3.2 互鎖構造 794
29.3.3 實現簡單的自旋鎖 799
29.3.4 Interlocked Anything模式 803
29.4 內核模式構造 805
29.4.1 Event構造 809
29.4.2 Semaphore構造 811
29.4.3 Mutex構造 812
第30章 混合線程同步構造 815
30.1 一個簡單的混合鎖 816
30.2 自旋、線程所有權和遞歸 817
30.3 FCL中的混合構造 820
30.3.1 ManualResetEventSlim類和SemaphoreSlim類 820
30.3.2 Monitor類和同步塊 821
30.3.3 ReaderWriterLockSlim類 826
30.3.4 OneManyLock類 829
30.3.5 CountdownEvent類 831
30.3.6 Barrier類 831
30.3.7 線程同步構造小結 832
30.4 著名的雙檢鎖技術 834
30.5 條件變量模式 839
30.6 異步的同步構造 841
30.7 並發集合類 846
術語表 851