-- 會員 / 註冊 --  
 帳號:
 密碼:
  | 註冊 | 忘記密碼
3/26 新書到! 3/19 新書到! 3/14 新書到! 12/12 新書到!
購書流程Q & A站務留言版客服信箱
3ds MaxMayaRhinoAfter EffectsSketchUpZBrushPainterUnity
PhotoShopAutoCadMasterCamSolidWorksCreoUGRevitNuke
C#CC++Java遊戲程式Linux嵌入式PLCFPGAMatlab
駭客資料庫搜索引擎影像處理FluentVR+ARANSYS深度學習
單晶片AVROpenGLArduinoRaspberry Pi電路設計CadenceProtel
HadoopPythonStm32CortexLabview手機程式AndroidiPhone
可查書名,作者,ISBN,3dwoo書號
詳細書籍分類

CLR via C#(第4版)

( 簡體 字)
作者:(美)Jeffrey Richter 周靖類別:1. -> 程式設計 -> .NET -> C#
譯者:
出版社:清華大學出版社CLR via C#(第4版) 3dWoo書號: 39990
詢問書籍請說出此書號!

缺書
NT售價: 545

出版日:10/17/2014
頁數:726
光碟數:0
站長推薦:
印刷:黑白印刷語系: ( 簡體 版 )
加入購物車 加到我的最愛
(請先登入會員)
ISBN:9787302380979
作者序 | 譯者序 | 前言 | 內容簡介 | 目錄 | 
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證)
作者序:

譯者序:

前言:

1999年10月,Microsoft的一些人首次向我展示了Microsoft .NET Framework、公共語言運行時(CLR)和C#編程語言。看到這一切時,我驚呆了,我知道我寫軟件的方式要發生非常大的變化了。他們請我為團隊做一些顧問工作,我當即同意了。剛開始,我以為.NET Framework是Win32 API和COM上的一個抽象層。但隨著我投入越來越多的時間研究,我意識到它是一個更宏偉的項目。某種程度上,它是自己的操作系統。有自己的內存管理器,自己的安全系統,自己的文件加載器,自己的錯誤處理機制,自己的應用程序隔離邊界(AppDomain)、自己的線程處理模型等。本書解釋了所有這些主題,幫你為這個平臺高效地設計和實現應用程序和組件。
我寫這本書是2012年10月,距離首次接觸.NET Framework和C#正好13年。13年來, 我以Microsoft顧問身份開發過各式各樣的應用程序,為.NET Framework本身也貢獻良多。作為我自己公司Wintellect(http://Wintellect.com)的合伙人,我還要為大量客戶工作,幫他們設計、調試、優化軟件以及解決使用.NET Framework時遇到的問題。正是因為有了這些資歷,所以我才知道如何用.NET Framework進行高效率編程。貫穿本書所有主題,你都會看到我的經驗之談。
本書面向的讀者
本書旨在解釋如何為.NET Framework開發應用程序和可重用的類。具體地說,我要解釋CLR的工作原理及其提供的功能,還要討論Framework Class Library(FCL)的各個部分。沒有一本書能完整地解釋FCL——其中含有數以千計的類型,而且這個數字正在以驚人速度增長。所以,我準備將重點放在每個開發人員都需要注意的核心類型上面。另外,雖然不會專門講Windows窗體、Windows Presentation Foundation(WPF)、Microsoft Silverlight、XML Web服務、Web窗體、Microsoft ASP.NET MVC、Windows Store應用等,但本書描述的技術適用于所有這些應用程序類型。
本書圍繞Microsoft Visual Studio 2012/2013,.NET Framework 4.5.x和C# 5.0展開。由于Microsoft在發布這些技術的新版本時,會試圖保持很大程度的向后兼容性,所以本書描述的許多內容也適合之前的版本。所有示例代碼都用C#編程語言寫成。但由于CLR可由許多編程語言使用,所以本書內容也適合非C#程序員。
我和我的編輯進行了艱苦卓絕的工作,試圖為你提供最準確、最新、最深入、最容易閱讀和理解、沒有錯誤的信息。但是,即便有如此完美的團隊協作,疏漏和錯誤也在所難免。如果你發現了本書的任何錯誤或者想提出一些建設性的意見,請發送郵件到JeffreyR@Wintellect.com。
內容簡介:

目錄:

第I部分 CLR基礎
第1章 CLR的執行模型 3
1.1 將源代碼編譯成托管模塊 3
1.2 將托管模塊合并成程序集 6
1.3 加載公共語言運行時 7
1.4 執行程序集的代碼 10
1.4.1 IL和驗證 15
1.4.2 不安全的代碼 16
1.5 本機代碼生成器:NGen.exe 17
1.6 Framework類庫 20
1.7 通用類型系統 22
1.8 公共語言規范 24
1.9 與非托管代碼的互操作性 28
第2章 生成、打包、部署和管理應用程序及類型 29
2.1 .NET Framework部署目標 29
2.2 將類型生成到模塊中 31
2.3 元數據概述 33
2.4 將模塊合并成程序集 39
2.4.1 使用Visual Studio IDE將程序集添加到項目中 44
2.4.2 使用程序集鏈接器 45
2.4.3 為程序集添加資源文件 46
2.5 程序集版本資源信息 47
2.6 語言文化 51
2.7 簡單應用程序部署(私有部署的程序集) 52
2.8 簡單管理控制(配置) 53
第3章 共享程序集和強命名程序集 57
3.1 兩種程序集,兩種部署 58
3.2 為程序集分配強名稱 59
3.3 全局程序集緩存 63
3.4 在生成的程序集中引用強命名程序集 65
3.5 強命名程序集能防篡改 66
3.6 延遲簽名 67
3.7 私有部署強命名程序集 69
3.8 “運行時”如何解析類型引用 70
3.9 高級管理控制(配置) 73
第Ⅱ部分 設計類型
第4章 類型基礎 81
4.1 所有類型都從System.Object派生 81
4.2 類型轉換 83
4.3 命名空間和程序集 86
4.4 運行時的相互關系 90
第5章 基元類型、引用類型和值類型 99
5.1 編程語言的基元類型 99
5.2 引用類型和值類型 106
5.3 值類型的裝箱和拆箱 111
5.3.1 使用接口更改已裝箱值類型中的字段(以及為什么不應該這樣做) 121
5.3.2 對象相等性和同一性 123
5.4 對象哈希碼 126
5.5 dynamic基元類型 127
第6章 類型和成員基礎 135
6.1 類型的各種成員 135
6.2 類型的可見性 138
6.3 成員的可訪問性 139
6.4 靜態類 141
6.5 分部類、結構和接口 142
6.6 組件、多態和版本控制 143
6.6.1 CLR如何調用虛方法、屬性和事件 145
6.6.2 合理使用類型的可見性和成員的可訪問性 148
6.6.3 對類型進行版本控制時的虛方法的處理 150
第7章 常量和字段 155
7.1 常量 155
7.2 字段 156
第8章 方法 161
8.1 實例構造器和類(引用類型) 161
8.2 實例構造器和結構(值類型) 164
8.3 類型構造器 167
8.4 操作符重載方法 170
8.5 轉換操作符方法 173
8.6 擴展方法 176
8.6.1 規則和原則 178
8.6.2 用擴展方法擴展各種類型 179
8.6.3 ExtensionAttribute類 181
8.7 分部方法 181
第9章 參數 185
9.1 可選參數和命名參數 185
9.1.1 規則和原則 186
9.1.2 DefaultParameterValueAttribute和OptionalAttribute 188
9.2 隱式類型的局部變量 188
9.3 以傳引用的方式向方法傳遞參數 190
9.4 向方法傳遞可變數量的參數 195
9.5 參數和返回類型的設計規范 197
9.6 常量性 198
第10章 屬性 201
10.1 無參屬性 201
10.1.1 自動實現的屬性 204
10.1.2 合理定義屬性 205
10.1.3 對象和集合初始化器 208
10.1.4 匿名類型 209
10.1.5 System.Tuple類型 212
10.2 有參屬性 214
10.3 調用屬性訪問器方法時的性能 218
10.4 屬性訪問器的可訪問性 219
10.5 泛型屬性訪問器方法 219
第11章 事件 221
11.1 設計要公開事件的類型 222
11.1.1 第一步:定義類型來容納所有需要發送給事件通知接收者的附加信息 222
11.1.2 第二步:定義事件成員 223
11.1.3 第三步:定義負責引發事件的方法來通知事件的登記對象 224
11.1.4 第四步:定義方法將輸入轉化為期望事件 226
11.2 編譯器如何實現事件 226
11.3 設計偵聽事件的類型 228
11.4 顯式實現事件 230
第12章 泛型 233
12.1 FCL中的泛型 237
12.2 泛型基礎結構 238
12.2.1 開放類型和封閉類型 239
12.2.2 泛型類型和繼承 240
12.2.3 泛型類型同一性 242
12.2.4 代碼爆炸 243
12.3 泛型接口 243
12.4 泛型委托 244
12.5 委托和接口的逆變和協變泛型類型實參 245
12.6 泛型方法 247
12.7 泛型和其他成員 249
12.8 可驗證性和約束 250
12.8.1 主要約束 252
12.8.2 次要約束 253
12.8.3 構造器約束 254
12.8.4 其他可驗證性問題 254
第13章 接口 259
13.1 類和接口繼承 259
13.2 定義接口 260
13.3 繼承接口 261
13.4 關于調用接口方法的更多探討 263
13.5 隱式和顯式接口方法實現(幕后發生的事情) 264
13.6 泛型接口 266
13.7 泛型和接口約束 268
13.8 實現多個具有相同方法名和簽名的接口 269
13.9 用顯式接口方法實現來增強編譯時類型安全性 270
13.10 謹慎使用顯式接口方法實現 271
13.11 設計:基類還是接口 274
第Ⅲ部分 基 本 類 型
第14章 字符、字符串和文本處理 279
14.1 字符 279
14.2 System.String類型 282
14.2.1 構造字符串 282
14.2.2 字符串是不可變的 284
14.2.3 比較字符串 285
14.2.4 字符串留用 290
14.2.5 字符串池 293
14.2.6 檢查字符串中的字符和文本元素 293
14.2.7 其他字符串操作 295
14.3 高效率構造字符串 296
14.3.1 構造StringBuilder對象 296
14.3.2 StringBuilder的成員 297
14.4 獲取對象的字符串表示:ToString 299
14.4.1 指定具體的格式和語言文化 299
14.4.2 將多個對象格式化成一個字符串 303
14.4.3 提供定制格式化器 304
14.5 解析字符串來獲取對象:Parse 306
14.6 編碼:字符和字節的相互轉換 308
14.6.1 字符和字節流的編碼和解碼 313
14.6.2 Base-64字符串編碼和解碼 314
14.7 安全字符串 315
第15章 枚舉類型和位標志 319
15.1 枚舉類型 319
15.2 位標志 324
15.3 向枚舉類型添加方法 328
第16章 數組 329
16.1 初始化數組元素 331
16.2 數組轉型 333
16.3 所有數組都隱式派生自System.Array 335
16.4 所有數組都隱式實現IEnumerable,ICollection和IList 336
16.5 數組的傳遞和返回 337
16.6 創建下限非零的數組 338
16.7 數組的內部工作原理 339
16.8 不安全的數組訪問和固定大小的數組 342
第17章 委托 345
17.1 初識委托 345
17.2 用委托回調靜態方法 347
17.3 用委托回調實例方法 349
17.4 委托揭秘 349
17.5 用委托回調多個方法(委托鏈) 353
17.5.1 C#對委托鏈的支持 356
17.5.2 取得對委托鏈調用的更多控制 357
17.6 委托定義不要太多(泛型委托) 359
17.7 C#為委托提供的簡化語法 360
17.7.1 簡化語法1:不需要構造委托對象 360
17.7.2 簡化語法2:不需要定義回調方法(lambda表達式) 361
17.7.3 簡化語法3:局部變量不需要手動包裝到類中即可傳給回調方法 364
17.8 委托和反射 367
第18章 定制特性 371
18.1 使用定制特性 371
18.2 定義自己的特性類 374
18.3 特性構造器和字段/屬性數據類型 377
18.4 檢測定制特性 378
18.5 兩個特性實例的相互匹配 382
18.6 檢測定制特性時不創建從Attribute派生的對象 384
18.7 條件特性類 387
第19章 可空值類型 389
19.1 C#對可空值類型的支持 391
19.2 C#的空接合操作符 393
19.3 CLR對可空值類型的特殊支持 394
19.3.1 可空值類型的裝箱 394
19.3.2 可空值類型的拆箱 395
19.3.3 通過可空值類型調用GetType 395
19.3.4 通過可空值類型調用接口方法 395
第Ⅳ部分 核 心 機 制
第20章 異常和狀態管理 399
20.1 定義“異常” 399
20.2 異常處理機制 401
20.2.1 try塊 402
20.2.2 catch塊 402
20.2.3 finally塊 404
20.3 System.Exception類 407
20.4 FCL定義的異常類 410
20.5 拋出異常 412
20.6 定義自己的異常類 413
20.7 用可靠性換取開發效率 415
20.8 設計規范和最佳實踐 422
20.8.1 善用finally塊 423
20.8.2 不要什么都捕捉 424
20.8.3 得體地從異常中恢復 425
20.8.4 發生不可恢復的異常時回滾部分完成的操作——維持狀態 426
20.8.5 隱藏實現細節來維系協定 427
20.9 未處理的異常 429
20.10 對異常進行調試 433
20.11 異常處理的性能問題 435
20.12 約束執行區域(CER) 438
20.13 代碼協定 441
第21章 托管堆和垃圾回收 447
21.1 托管堆基礎 447
21.1.1 從托管堆分配資源 448
21.1.2 垃圾回收算法 449
21.1.3 垃圾回收和調試 451
21.2 代:提升性能 454
21.2.1 垃圾回收觸發條件 458
21.2.2 大對象 459
21.2.3 垃圾回收模式 459
21.2.4 強制垃圾回收 462
21.2.5 監視應用程序的內存使用 463
21.3 使用需要特殊清理的類型 464
21.3.1 使用包裝了本機資源的類型 470
21.3.2 一個有趣的依賴性問題 474
21.3.3 GC為本機資源提供的其他功能 475
21.3.4 終結的內部工作原理 479
21.3.5 手動監視和控制對象的生存期 481
第22章 CLR寄宿和AppDomain 489
22.1 CLR寄宿 489
22.2 AppDomain 491
跨越AppDomain邊界訪問對象 494
22.3 卸載AppDomain 504
22.4 監視AppDomain 505
22.5 AppDomain FirstChance異常通知 507
22.6 宿主如何使用AppDomain 507
22.6.1 可執行應用程序 507
22.6.2 Microsoft Silverlight富Internet應用程序 508
22.6.3 Microsoft ASP.NET和XMLWeb服務應用程序 508
22.6.4 Microsoft SQL Server 509
22.6.5 更多的用法只局限于想象力 509
22.7 高級宿主控制 509
22.7.1 使用托管代碼管理CLR 509
22.7.2 寫健壯的宿主應用程序 510
22.7.3 宿主如何拿回它的線程 511
第23章 程序集加載和反射 515
23.1 程序集加載 516
23.2 使用反射構建動態可擴展應用程序 520
23.3 反射的性能 521
23.3.1 發現程序集中定義的類型 522
23.3.2 類型對象的準確含義 522
23.3.3 構建Exception派生類型的層次結構 524
23.3.4 構造類型的實例 525
23.4 設計支持加載項的應用程序 527
23.5 使用反射發現類型的成員 529
23.5.1 發現類型的成員 530
23.5.2 調用類型的成員 533
23.5.3 使用綁定句柄減少進程的內存消耗 537
第24章 運行時序列化 541
24.1 序列化/反序列化快速入門 542
24.2 使類型可序列化 546
24.3 控制序列化和反序列化 548
24.4 格式化器如何序列化類型實例 551
24.5 控制序列化/反序列化的數據 552
24.6 流上下文 558
24.7 類型序列化為不同類型以及對象反序列化為不同對象 559
24.8 序列化代理 562
24.9 反序列化對象時重寫程序集/類型 566
第25章 與WinRT組件互操作 569
25.1 CLR投射與WinRT組件類型系統規則 571
25.2 框架投射 575
25.2.1 從.NET代碼中調用異步WinRT API 575
25.2.2 WInRT流和.NET流之間的互操作 579
25.2.3 在CLR和WinRT之間傳輸數據塊 580
25.3 用C#定義WinRT組件 583
第Ⅴ部分 線 程 處 理
第26章 線程基礎 591
26.1 Windows為什么要支持線程 591
26.2 線程開銷 592
26.3 停止瘋狂 595
26.4 CPU發展趨勢 597
26.5 CLR線程和Windows線程 598
26.6 使用專用線程執行異步的計算限制操作 599
26.7 使用線程的理由 601
26.8 線程調度和優先級 603
26.9 前臺線程和后臺線程 608
26.10 繼續學習 609
第27章 計算限制的異步操作 611
27.1 CLR線程池基礎 612
27.2 執行簡單的計算限制操作 612
27.3 執行上下文 614
27.4 協作式取消和超時 615
27.5 任務 619
27.5.1 等待任務完成并獲取結果 620
27.5.2 取消任務 622
27.5.3 任務完成時自動啟動新任務 623
27.5.4 任務可以啟動子任務 625
27.5.5 任務內部揭秘 625
27.5.6 任務工廠 627
27.5.7 任務調度器 628
27.6 Parallel的靜態For,ForEach和Invoke方法 630
27.7 并行語言集成查詢(PLINQ) 634
27.8 執行定時計算限制操作 636
27.9 線程池如何管理線程 639
27.9.1 設置線程池限制 639
27.9.2 如何管理工作者線程 640
第28章 I/O限制的異步操作 643
28.1 Windows如何執行I/O操作 643
28.2 C#的異步函數 647
28.3 編譯器如何將異步函數轉換成狀態機 649
28.4 異步函數擴展性 653
28.5 異步函數和事件處理程序 655
28.6 FCL的異步函數 656
28.7 異步函數和異常處理 658
28.8 異步函數的其他功能 658
28.9 應用程序及其線程處理模型 661
28.10 以異步方式實現服務器 663
28.11 取消I/O操作 664
28.12 有的I/O操作必須同步進行 665
28.13 I/O請求優先級 666
第29章 基元線程同步構造 669
29.1 類庫和線程安全 671
29.2 基元用戶模式和內核模式構造 672
29.3 用戶模式構造 673
29.3.1 易變構造 674
29.3.2 互鎖構造 678
29.3.3 實現簡單的自旋鎖 682
29.3.4 Interlocked Anything模式 685
29.4 內核模式構造 687
29.4.1 Event構造 691
29.4.2 Semaphore構造 693
29.4.3 Mutex構造 694
第30章 混合線程同步構造 697
30.1 一個簡單的混合鎖 697
30.2 自旋、線程所有權和遞歸 699
30.3 FCL中的混合構造 701
30.3.1 ManualResetEventSlim類和SemaphoreSlim類 701
30.3.2 Monitor類和同步塊 701
30.3.3 ReaderWriterLockSlim類 706
30.3.4 OneManyLock類 709
30.3.5 CountdownEvent類 711
30.3.6 Barrier類 711
30.3.7 線程同步構造小結 712
30.4 著名的雙檢鎖技術 713
30.5 條件變量模式 717
30.6 異步的同步構造 719
30.7 并發集合類 723
譯者后記 727
序: