 |
-- 會員 / 註冊 --
|
|
|
|
框架設計(第2版)——CLR Via C# ( 簡體 字) |
作者:[美]Jeffrey Richter | 類別:1. -> 程式設計 -> .NET -> C# |
譯者:周靖/張杰良 |
出版社:清華大學出版社 | 3dWoo書號: 3962 詢問書籍請說出此書號!【缺書】 【不接受訂購】 |
出版日:11/1/2006 |
頁數:542 |
光碟數:0 |
|
站長推薦:  |
印刷:黑白印刷 | 語系: ( 簡體 版 ) |
|
【不接受訂購】 | ISBN:7302140162 |
作者序 | 譯者序 | 前言 | 內容簡介 | 目錄 | 序 |
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證) |
作者序: |
譯者序: |
前言: |
內容簡介:著名技術作家Jeff Richter 新作,助您迅速掌握CLR 在經典暢銷書《Microsoft .NET框架程序設計》的最新版中,深入剖析了.NET Framework和CLR 2.0的內部機制。Jeffrey是深受愛戴的編程專家,同時也是Microsoft .NET開發團隊的顧問。本書是他多年開發和咨詢經驗的結晶,是開發人員開發任何一類應用程序(包括ASP.NET、Windows窗體、Microsoft SQL Server,Web服務和控制臺應用程序)的理想參考。 通過本書提供的動手指導和豐富的C#范例代碼,開發人員可掌握難解的主題,開發出高性能的應用程序。 本書特色主題: ·構建、部署、管理應用程序、組件和共享程序集并對其進行版本控制 ·用常量、字段、構造函數、方法、屬性和事件來設計類型 ·高效使用CLR的特殊類型,如枚舉器、數組和字符串等 ·聲明、創建和使用委托來揭示回調函數 ·用接口和泛型來定義和部署可重用的算法 ·定義、使用和檢測自定義屬性 ·使用異常處理來構建健壯、穩定、安全性更強的組件 ·用垃圾收集機制自動管理內存,并使用本地資源 ·應用CLR宿主、應用程序域、程序集加載和反射,構建動態可擴展的應用程序。 |
目錄:第Ⅰ部分 CLR基礎 第1章 CLR的執行模型 3 1.1 將源代碼編譯成托管模塊 3 1.2 將托管模塊合并成程序集 6 1.3 加載公共語言運行庫 7 1.4 執行程序集的代碼 9 1.4.1 IL和驗證 14 1.4.2 不安全的代碼 15 1.5 本地代碼生成器:NGen.exe16 1.6 Framework類庫入門 18 1.7 通用類型系統 20 1.8 公共語言規范(CLS) 22 1.9 與非托管代碼的互操作性 26 第2章 生成、打包、部署和管理 應用程序及類型 28 2.1 .NET Framework部署目標 28 2.2 將類型集成到模塊中 29 2.3 元數據概述 32 2.4 合并模塊以構成一個程序集 38 2.4.1 使用Visual Studio IDE在項目 中添加程序集 43 2.4.2 使用程序集鏈接器 44 2.4.3 在程序集中包含 資源文件 45 2.5 程序集版本資源信息 46 2.6 語言文化 49 2.7 簡單應用程序部署 (私有部署的程序集) 50 2.8 簡單管理控制(配置) 51 第3章 共享程序集和 強命名程序集 54 3.1 兩種程序集,兩種部署 55 3.2 為程序集指派強名稱 56 3.3 全局程序集緩存 61 3.4 在生成的程序集中引用 一個強命名程序集 66 3.5 強命名程序集能防范篡改 67 3.6 延遲簽名 68 3.7 私有部署強命名程序集 70 3.8 運行庫如何解析類型引用 71 3.9 高級管理控制(配置) 73 第Ⅱ部分 類型的使用 第4章 類型基礎 81 4.1 所有類型都是從 System.Object派生的 81 4.2 強制類型轉換 83 4.3 命名空間和程序集 86 4.4 運行時的相互關系 90 第5章 基元、引用和值類型 98 5.1 編程語言的基元類型 98 5.2 引用類型和值類型 103 5.3 值類型的裝箱和拆箱 108 5.4 使用接口更改已裝箱值類型中的字段 (以及為什么不應該這樣做) 118 5.5 對象相等性和身份標識 120 5.6 對象哈希碼 123 第Ⅲ部分 類型的設計 第6章 類型和成員基礎 127 6.1 類型成員的種類 127 6.2 類型的可見性 130 6.3 成員的可訪問性 131 6.4 靜態類 133 6.5 部分類、結構和接口 134 6.6 組件、多態和版本控制 135 6.6.1 CLR如何調用虛方法、 屬性和事件 137 6.6.2 巧妙使用類型的可見性和 成員的可訪問性 140 6.6.3 類型版本控制過程中虛 方法的處理 143 第7章 常量和字段 147 7.1 常量 147 7.2 字段 148 第8章 方法:構造器、操作符、 轉換操作符 和參數 151 8.1 實例構造器和類(引用類型)151 8.2 實例構造器和結構(值類型)154 8.3 類型構造器 156 8.4 操作符重載 161 8.5 轉換操作符方法 164 8.6 通過引用向方法傳遞參數 167 8.7 向方法傳遞可變數量的參數 172 8.8 聲明方法的參數類型 174 8.9 常量方法和參數 175 第9章 屬性 176 9.1 無參屬性 176 9.2 有參屬性 180 9.3 調用屬性訪問器方法的性能 184 9.4 屬性訪問器的可訪問性 185 9.5 泛型屬性訪問器方法 185 第10章 事件 186 10.1 設計一個對外提供事件的類型 187 10.1.1 第一步:定義一個類型用于存放所有需要發送給事件通知接收者的附加信息187 10.1.2 第二步:定義事件成員 188 10.1.3 第三步:定義一個負責 引發事件的方法來通知已 訂閱事件的對象事件已經發生 189 10.1.4 第四步:定義一個方法, 將輸入轉化為期望事件 190 10.2 如何實現事件 190 10.3 設計一個監聽事件的類型 192 10.4 事件與線程安全 193 10.5 顯式控制事件的訂閱與注銷194 10.6 設計一個定義多個事件的類型196 第Ⅳ部分 基本類型 第11章 字符、字符串和文本 201 11.1 字符 201 11.2 System.String類型 204 11.2.1 構造字符串 204 11.2.2 字符串是不可變的 206 11.2.3 比較字符串 206 11.2.4 字符串留用 212 11.2.5 字符串池 214 11.2.6 檢查字符串的字符 和文本元素 214 11.2.7 其他字符串操作 216 11.3 高效率地動態構造一個字符串 217 11.3.1 構造一個 StringBuilder對象 217 11.3.2 StringBuilder的成員 218 11.4 獲取對象的字符串表示 220 11.4.1 特定的格式和語言 220 11.4.2 將多個對象格式化 成單個字符串 224 11.4.3 提供定制格式化器 225 11.5 解析字符串來獲取一個對象 227 11.6 編碼:在字符和字節之間轉換 229 11.6.1 字符和字節流的 編碼/解碼 234 11.6.2 Base-64字符串編碼 和解碼 235 11.7 安全字符串 236 第12章 枚舉類型和位標志 239 12.1 枚舉類型 239 12.2 位標志 244 第13章 數組 247 13.1 數組的類型轉換 249 13.2 所有數組都隱式繼承自 System.Array 251 13.3 所有數組都隱式實現IEnumerable, ICollection和Ilist 252 13.4 數組的傳遞與返回 253 13.5 創建下界非0的數組 253 13.6 數組訪問性能 254 13.7 非安全數組訪問和 固定長度數組 258 第14章 接口 261 14.1 類和接口的繼承 261 14.2 定義接口 262 14.3 接口的繼承 263 14.4 調用接口方法詳解 265 14.5 接口方法的隱式和顯式實現 (幕后細節) 266 14.6 泛型接口 267 14.7 泛型接口和接口約束 269 14.8 實現具有相同方法名和簽名的 多個接口 270 14.9 用顯式接口方法實現改進編譯時 類型安全 271 14.10 謹慎使用顯式接口方法實現 272 14.11 設計:基類還是接口 275 第15章 委托 277 15.1 初識委托 277 15.2 使用委托來回調靜態方法 279 15.3 使用委托回調實例方法 280 15.4 委托揭秘 281 15.5 使用委托回調多個方法(鏈式) 285 15.6 C#對委托鏈的支持 288 15.7 對委托鏈調用進行更多控制 289 15.8 C#為委托提供的語法便利 291 15.8.1 語法快捷方式1: 不需要構造委托對象 291 15.8.2 語法快捷方式2: 不需要定義回調方法 292 15.8.3 語法快捷方式3: 不需要指定回調方法 的參數 293 15.8.4 語法快捷方式4: 不需要將局部變量人工封裝 到類中,即可將它們 傳給一個回調方法 294 15.9 委托和反射 296 第16章 泛型 300 16.1 FCL中的泛型 304 16.2 Wintellect的Power Collections庫 305 16.3 泛型基礎結構 306 16.3.1 開放和封閉式類型 307 16.3.2 泛型類型和繼承 308 16.3.3 泛型類型同一性 310 16.3.4 代碼爆炸 311 16.4 泛型接口 311 16.5 泛型委托 312 16.6 泛型方法 313 16.7 泛型和其他成員 315 16.8 可驗證性和限制 315 16.8.1 主要約束 317 16.8.2 次要約束 318 16.8.3 構造器約束 319 16.8.4 其他可驗證性問題 320 第17章 自定義屬性 323 17.1 使用自定義屬性 324 17.2 定義自己的屬性 327 17.3 屬性構造器和Field/Property 數據類型 330 17.4 檢測自定義屬性的使用 331 17.5 兩個屬性實例的相互匹配 334 17.6 檢測自定義屬性的使用,同時 不創建Attribute派生對象 337 17.7 條件屬性類 339 第18章 可空值類型 341 18.1 C#對可空值類型的支持 342 18.2 C#的空接合操作符 344 18.3 CLR對可空值類型的特殊支持344 18.3.1 對可空值類型進行裝箱 344 18.3.2 對可空值類型進行拆箱 345 18.3.3 通過可空值類型來 調用GetType 346 18.3.4 通過可空值類型 調用接口方法 346 第Ⅴ部分 CLR實用特性 第19章 異常 349 19.1 異常處理的演變 350 19.2 異常處理機制 351 19.2.1 try塊 352 19.2.2 catch塊 352 19.2.3 finally塊 354 19.3 符合公共語言規范(CLS)的異常與 不符合CLS的異常 354 19.4 異常的準確定義 356 19.5 System.Exception類 358 19.6 FCL中預定義的異常類 359 19.7 拋出異常 361 19.8 定義自己的異常類 361 19.9 如何正確地使用異常 364 19.9.1 驗證方法的參數 364 19.9.2 合理使用finally塊 367 19.9.3 避免捕獲所有的異常 368 19.9.4 從異常中順利恢復 369 19.9.5 當異常無法修復時, 回滾局部完成的操作 369 19.9.6 隱藏實現細節, 維持“約定” 370 19.10 性能考慮 372 19.11 未處理異常 374 19.12 異常堆棧跟蹤 376 19.13 調試異常 378 第20章 自動內存管理(垃圾收集) 380 20.1 理解垃圾收集平臺的 基本工作原理 380 20.2 垃圾收集算法 383 20.3 垃圾收集與調試 387 20.4 使用終結操作來釋放本地資源 389 20.4.1 確保終結操作使用 CriticalFinalizerObject 類型 390 20.4.2 SafeHandle類型及其 派生類型 391 20.4.3 使用SafeHandle類型實現 非托管代碼之間的 互操作 393 20.5 對托管資源使用終結操作 395 20.6 哪些事件會導致Finalize 方法的調用 397 20.7 終結操作內部揭秘 398 20.8 釋放模式:強制對象清理資源 401 20.9 使用實現了釋放模式的類型 404 20.10 C#的using語句 407 20.11 一個有趣的依賴問題 409 20.12 人工監視和控制對象的生存期 410 20.13 對象復蘇 417 20.14 對象的代 418 20.15 使用本地資源的其他 垃圾收集特性 423 20.16 預測需求較多內存的操作 能否成功 426 20.17 編程控制垃圾收集器 427 20.18 與垃圾收集器性能相關的 其他一些話題 430 20.18.1 免同步的多線程分配 431 20.18.2 可擴展并行收集 431 20.18.3 并發收集 431 20.18.4 大尺寸對象 432 20.19 監視垃圾收集 433 第21章 CLR寄宿和應用程序域 435 21.1 CLR寄宿 435 21.2 應用程序域 438 21.3 應用程序域的卸載 450 21.4 宿主如何使用應用程序域 451 21.4.1 控制臺和Windows窗體 應用程序 451 21.4.2 Microsoft Internet Explorer 452 21.4.3 Microsoft ASP.NET Web 窗體和XML Web服務 應用程序 452 21.4.4 Microsoft SQL Server 2005 453 21.4.5 預測與展望 453 21.5 高級宿主控制 453 21.5.1 使用托管代碼管理CLR 453 21.5.2 編寫健壯的宿主 應用程序 454 21.5.3 宿主如何恢復線程 455 第22章 程序集的加載與反射 459 22.1 程序集的加載 459 22.2 使用反射構建動態可擴展 應用程序 463 22.3 反射的性能 463 22.3.1 發現程序集中定義 的類型 464 22.3.2 類型對象的準確含義 465 22.3.3 構建派生自Exception 的類型的層次結構 467 22.3.4 構建類型的實例 468 22.4 設計支持插件的應用程序 470 22.5 使用反射發現類型的成員 473 22.5.1 發現類型成員 473 22.5.2 BindingFlags:篩選返回 成員的類型 477 22.5.3 發現類型的接口 478 22.5.4 調用類型的成員 480 22.5.5 一次綁定、多次調用 483 22.5.6 使用綁定句柄來 減小工作集 487 第23章 執行異步操作 490 23.1 CLR如何使用Windows線程 490 23.2 高效線程使用圣典 491 23.3 CLR線程池簡介 493 23.4 限制線程池中線程的數量 494 23.5 使用線程池執行受計算限制 的異步操作 495 23.6 使用專用線程執行受計算限制 的異步操作 497 23.7 定期執行受計算限制的異步操作 499 三個定時器的史話 500 23.8 異步編程模型簡介 501 23.9 使用APM執行受I/O限制 的異步操作 502 23.10 APM的三個聚集技巧 504 23.10.1 APM的等待直至 完成聚集技巧 504 23.10.2 APM的輪詢聚集技巧 506 23.10.3 APM的方法回調聚 集技巧 508 23.11 使用APM執行受計算限制 的異步操作 512 23.12 APM與異常 514 23.13 對APM的重要說明 514 23.14 執行上下文 516 第24章 線程同步 519 24.1 內存一致性、易失內存訪問 與易失字段 520 24.1.1 易失讀取和寫入 522 24.1.2 C#對易失字段的支持 524 24.2 互鎖方法 526 24.3 Monitor類與同步塊 527 24.3.1 “偉大想法” 527 24.3.2 “偉大想法”的實現 528 24.3.3 使用Monitor類管理 同步塊 529 24.3.4 Microsoft最初計劃 的同步方式 530 24.3.5 使用C#的lock語句 簡化代碼 531 24.3.6 Microsoft最初計劃 同步靜態成員的方式 532 24.3.7 為什么“偉大想法” 思想毫無偉大之處 533 24.3.8 著名的雙檢鎖技巧 535 24.4 ReaderWriterLock類 537 24.5 使用托管代碼中的Windows 內核對象 538 |
序: |
|