 |
-- 會員 / 註冊 --
|
|
|
|
C#本質論 ( 簡體 字) |
作者:[美]Mark | 類別:1. -> 程式設計 -> .NET -> C# |
譯者: |
出版社:人民郵電出版社 | 3dWoo書號: 13640 詢問書籍請說出此書號!【缺書】 【不接受訂購】 |
出版日:7/1/2008 |
頁數:498 |
光碟數: |
|
站長推薦:  |
印刷: | 語系: ( 簡體 版 ) |
|
【不接受訂購】 | ISBN:9787115181879 |
作者序 | 譯者序 | 前言 | 內容簡介 | 目錄 | 序 |
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證) |
作者序: |
譯者序: |
前言: |
內容簡介:本書是一本清晰、簡明的C#教程,涵蓋了C# 2.0。書中對C#語言的每個重要結構都用簡短的示例代碼進行說明,并且和其他語言進行了全方位比較。每章開頭的“思維導圖”指明了本章要討論的主題以及每個主題同整體的關系。全書由18章和3個附錄組成。在簡單介紹了C#之后,重點討論了C#的數據類型、運算符、方法、類等基本概念,隨后還對泛型、迭代器、反射、線程、互操作性等高級主題進行了深入而透徹的討論。 本書適用于對C#感興趣的各種層次的讀者,無論是初學者還是高級編程人員,都能從本書中獲益。
|
目錄:第1章 C#概述 1 1.1 Hello, World 1 1.1.1 應用程序的編譯和運行 2 1.1.2 托管執行和公共語言基礎結構 3 1.2 C#語法基礎 4 1.2.1 C#關鍵字 4 1.2.2 類型定義 6 1.2.3 Main 6 1.2.4 語句和語句分隔符 7 1.2.5 空白 8 1.3 使用變量 9 1.3.1 數據類型 9 1.3.2 變量的聲明 10 1.3.3 變量的賦值 10 1.3.4 變量的使用 11 1.4 控制臺輸入和輸出 11 1.4.1 從控制臺獲取輸入 12 1.4.2 將輸出寫入控制臺 13 1.5 注釋 14 1.6 CIL和ILDASM 16 1.7 小結 18
第2章 數據類型 19 2.1 基本數值類型 19 2.1.1 整數類型 19 2.1.2 浮點類型 20 2.1.3 decimal類型 21 2.1.4 字面值 21 2.2 更多基本類型 24 2.2.1 布爾類型 24 2.2.2 字符類型 25 2.2.3 字符串 26 2.3 null和void 31 2.3.1 null 31 2.3.2 void 32 2.4 類型的分類 32 2.4.1 值類型 32 2.4.2 引用類型 33 2.5 可空修飾符 34 2.6 數據類型之間的轉換 35 2.6.1 顯式轉型 35 2.6.2 隱式轉型 37 2.6.3 不進行轉型的類型轉換 38 2.7 數組 39 2.7.1 數組的聲明 39 2.7.2 數組的實例化和賦值 40 2.7.3 數組的使用 43 2.7.4 字符串作為數組使用 47 2.7.5 常見錯誤 49 2.8 小結 50
第3章 運算符和控制流 51 3.1 運算符 51 3.1.1 一元運算符正和負 52 3.1.2 二元算術運算符 52 3.1.3 圓括號運算符 57 3.1.4 賦值運算符 58 3.1.5 遞增和遞減運算符 58 3.1.6 常量表達式 61 3.2 流控制概述 61 3.2.1 if語句 63 3.2.2 嵌套if 64 3.3 代碼塊 65 3.4 作用域 67 3.5 布爾表達式 68 3.5.1 關系運算符和相等性運算符 69 3.5.2 邏輯布爾運算符 69 3.5.3 邏輯求反運算符 70 3.5.4 條件運算符 71 3.6 按位運算符 72 3.6.1 移位運算符 72 3.6.2 按位運算符 73 3.6.3 按位賦值運算符 75 3.6.4 按位取反運算符 75 3.7 控制流語句 75 3.7.1 while和do/while循環 75 3.7.2 for循環 77 3.7.3 foreach循環 79 3.7.4 switch語句 81 3.8 跳轉語句 83 3.8.1 break語句 83 3.8.2 continue語句 85 3.8.3 goto語句 87 3.9 C#預處理器指令 88 3.9.1 排除和包含代碼 88 3.9.2 定義預處理器符號 89 3.9.3 生成錯誤和警告 90 3.9.4 關閉警告消息 90 3.9.5 nowarn:warn list選項 90 3.9.6 指定行號 91 3.9.7 可視編輯器提示 91 3.10 小結 92
第4章 方法和參數 94 4.1 方法的調用 95 4.1.1 命名空間 96 4.1.2 類型名稱 97 4.1.3 作用域 97 4.1.4 方法名稱 98 4.1.5 參數 98 4.1.6 方法返回值 98 4.1.7 語句與方法調用的比較 98 4.2 方法的聲明 99 4.2.1 參數聲明 100 4.2.2 方法返回值聲明 101 4.3 using指令 102 4.4 Main()的返回值和參數 105 4.5 參數 107 4.5.1 值參數 107 4.5.2 引用參數(ref) 108 4.5.3 輸出參數(out) 109 4.5.4 參數數組(params) 111 4.6 遞歸 113 4.7 方法重載 115 4.8 用異常實現基本錯誤處理 117 4.8.1 捕捉錯誤 118 4.8.2 使用throw語句報告錯誤 124 4.9 小結 126
第5章 類 127 5.1 類的定義和實例化 130 5.2 實例字段 131 5.2.1 實例字段的聲明 132 5.2.2 實例字段的訪問 132 5.3 實例方法 133 5.4 使用this關鍵字 134 5.5 訪問修飾符 139 5.6 構造器 140 5.6.1 構造器的聲明 141 5.6.2 默認構造器 142 5.6.3 構造器的重載 143 5.6.4 使用this調用另一個構造器 143 5.7 靜態 145 5.7.1 靜態字段 146 5.7.2 靜態方法 148 5.7.3 靜態構造器 148 5.7.4 靜態類 149 5.8 const和readonly修飾符 151 5.8.1 const 151 5.8.2 readonly 151 5.9 屬性 152 5.9.1 屬性的聲明 153 5.9.2 命名規范 155 5.9.3 靜態屬性 156 5.9.4 提供屬性驗證 156 5.9.5 只讀和只寫屬性 157 5.9.6 為getter和setter指定訪問修飾符 158 5.9.7 屬性作為虛字段使用 159 5.9.8 屬性和方法調用不允許作為ref或out參數值使用 161 5.10 嵌套類 162 5.11 分部類 163 5.12 小結 165
第6章 繼承 166 6.1 派生 166 6.1.1 基類型和派生類型之間的轉型 169 6.1.2 對參數“協變”和“逆變”的支持 170 6.1.3 private訪問修飾符 171 6.1.4 protected訪問修飾符 172 6.1.5 單一繼承 173 6.1.6 密封類 175 6.2 基類的重寫 176 6.2.1 virtual修飾符 176 6.2.2 new修飾符 180 6.2.3 sealed修飾符 183 6.2.4 base成員 183 6.2.5 構造器 184 6.3 抽象類 185 6.4 一切最終都從System.Object派生 189 6.5 使用is運算符驗證基礎類型 190 6.6 使用as運算符進行轉換 190 6.7 小結 192
第7章 接口 193 7.1 接口概述 193 7.2 通過接口來實現多態性 194 7.3 接口實現 198 7.3.1 顯式成員實現 199 7.3.2 隱式成員實現 200 7.3.3 顯式接口實現與隱式接口實現的比較 201 7.4 “實現類”與其接口之間的轉型 201 7.5 接口繼承 202 7.6 多接口繼承 203 7.7 通過接口來實現多重繼承 204 7.8 版本控制 207 7.9 接口與類的比較 208 7.10 小結 208
第8章 值類型 209 8.1 結構 209 8.1.1 struct的初始化 212 8.1.2 default運算符的使用 213 8.1.3 值類型的繼承和接口 214 8.2 裝箱 214 8.3 枚舉 219 8.3.1 枚舉之間的類型兼容性 221 8.3.2 枚舉和字符串之間的轉換 222 8.3.3 枚舉作為標志使用 223 8.4 小結 226
第9章 合式類型 227 9.1 重寫object的成員 227 9.1.1 重寫ToString() 227 9.1.2 重寫GetHashCode() 228 9.1.3 重寫Equals() 229 9.1.4 相等性實現的指導原則 235 9.2 運算符重載 235 9.2.1 比較運算符 235 9.2.2 二元運算符 236 9.2.3 賦值與二元運算符的結合 238 9.2.4 條件邏輯運算符 238 9.2.5 一元運算符 238 9.2.6 轉換運算符 239 9.2.7 轉換運算符的指導原則 240 9.3 引用其他程序集 241 9.3.1 更改程序集目標 241 9.3.2 類型封裝 242 9.3.3 引用程序集 243 9.4 定義命名空間 243 9.5 XML注釋 246 9.5.1 將XML注釋與代碼構造關聯到一起 246 9.5.2 生成XML文檔文件 248 9.6 垃圾回收 249 9.7 資源清理 251 9.7.1 終結器 251 9.7.2 使用using語句進行確定性終結 253 9.7.3 垃圾回收和終結 255 9.7.4 資源利用和終結的指導原則 256 9.8 小結 256
第10章 異常處理 257 10.1 多異常類型 257 10.2 捕捉異常 258 10.3 常規catch塊 259 10.4 異常處理的指導原則 261 10.5 定義自定義異常 262 10.6 小結 266
第11章 泛型 267 11.1 如果C#沒有泛型 267 11.2 泛型類型概述 271 11.2.1 泛型類的使用 271 11.2.2 簡單泛型類的定義 273 11.2.3 泛型的優點 274 11.2.4 類型參數命名的指導原則 274 11.2.5 泛型接口和struct 274 11.2.6 構造器和終結器的定義 276 11.2.7 默認值的指定 277 11.2.8 多個類型參數 278 11.2.9 嵌套泛型類型 279 11.2.10 “類型參數”兼容的泛型類之間的類型兼容性 279 11.3 約束 280 11.3.1 接口約束 282 11.3.2 基類約束 284 11.3.3 struct/class約束 284 11.3.4 多個約束 285 11.3.5 構造器約束 285 11.3.6 約束繼承 286 11.4 泛型方法 289 11.4.1 類型推斷 290 11.4.2 約束的指定 291 11.5 泛型的內部機制 292 11.5.1 基于值類型的泛型的實例化 294 11.5.2 基于引用類型的泛型的實例化 294 11.6 小結 295
第12章 集合 296 12.1 主要集合類 296 12.1.1 列表集合:ListT和ArrayList 297 12.1.2 字典集合:DictionaryTKey,TValue和Hashtable 300 12.1.3 已排序集合:SortedDic-tionaryTKey, TValue和SortedListT 304 12.1.4 棧集合:StackT和Stack 305 12.1.5 隊列集合:QueueT和Queue 306 12.1.6 鏈表:LinkedListT 306 12.2 集合類接口概述 307 12.2.1 IListT和IDictionaryTKey, TValue 307 12.2.2 IComparableT 308 12.2.3 ICollectionT 310 12.2.4 使用foreach循環來迭代 310 12.3 提供一個索引運算符 314 12.4 返回Null或者空集合 317 12.5 迭代器 317 12.5.1 迭代器的定義 318 12.5.2 迭代器語法 318 12.5.3 從迭代器yield值 319 12.5.4 迭代器和狀態 321 12.5.5 更多的迭代器例子 322 12.5.6 將yield return語句放到循環中 324 12.5.7 取消更多的迭代:yield break 325 12.5.8 在單個類中創建多個迭代器 327 12.5.9 yield語句的特征 328 12.6 小結 328
第13章 委托和事件 329 13.1 方法指針 329 13.1.1 定義場景 330 13.1.2 委托數據類型 331 13.1.3 委托的內部機制 332 13.1.4 委托類型的定義 333 13.1.5 委托的實例化 333 13.1.6 匿名方法 337 13.1.7 外部變量 340 13.2 multicast委托和Observer模式 342 13.2.1 使用委托來編寫Observer模式 343 13.2.2 順序調用 349 13.3 事件 354 13.3.1 事件的作用 354 13.3.2 事件的聲明 355 13.3.3 編程規范 356 13.3.4 泛型和委托 357 13.3.5 自定義事件的實現 360 13.4 小結 361
第14章 反射和attribute 362 14.1 反射 362 14.1.1 使用System.Type訪問元數據 363 14.1.2 成員調用 364 14.1.3 泛型類型上的反射 369 14.2 attribute 371 14.2.1 自定義attribute 374 14.2.2 查找attribute 374 14.2.3 使用構造器來初始化attribute 375 14.2.4 System.AttributeUsage-Attribute 379 14.2.5 具名參數 380 14.3 小結 391
第15章 多線程處理 392 15.1 獨立線程的運行和控制 394 15.1.1 線程的啟動 395 15.1.2 線程管理 396 15.2 向線程傳遞參數 397 15.3 線程池處理 400 15.4 未處理的異常 402 15.5 同步 403 15.5.1 使用Monitor來同步 405 15.5.2 使用lock關鍵字 406 15.5.3 lock對象的選擇 408 15.5.4 為什么要避免在this和typeof(type)上鎖定 408 15.5.5 將字段聲明為volatile 408 15.5.6 使用System.Threading.Interlocked類 409 15.5.7 多個線程時的事件通知 410 15.5.8 同步設計最佳實踐 411 15.5.9 更多的同步類型 411 15.6 計時器 416 15.7 小結 420
第16章 多線程處理模式 421 16.1 Asynchronous Results模式 421 16.1.1 Asynchronous Results模式概述 422 16.1.2 向輪換線程傳入數據以及從輪換線程傳出數據 424 16.1.3 接收線程完成通知 428 16.1.4 傳遞任意狀態 430 16.1.5 Asynchronous Results小結 432 16.2 Background Worker模式 433 16.2.1 模式的建立 435 16.2.2 異常處理 436 16.3 Windows窗體 437 16.4 小結 439
第17章 平臺互操作性和不安全的代碼 440 17.1 平臺調用 441 17.1.1 外部函數的聲明 441 17.1.2 參數的數據類型 441 17.1.3 使用ref而不是指針 442 17.1.4 為順序布局使用Struct-LayoutAttribute 443 17.1.5 錯誤處理 444 17.1.6 使用SafeHandle 446 17.1.7 外部函數的調用 448 17.1.8 用包裝簡化API調用 450 17.1.9 函數指針映射到委托 451 17.1.10 指導原則 451 17.2 指針和地址 451 17.2.1 不安全的代碼 451 17.2.2 指針的聲明 452 17.2.3 指針的賦值 454 17.2.4 指針的解引用 455 17.2.5 引用類型的成員的訪問 457 17.3 小結 457
第18章 CLI 460 18.1 CLI的定義 460 18.2 CLI實現 461 18.3 C#編譯成機器碼 462 18.4 運行時 462 18.4.1 垃圾回收 464 18.4.2 .NET的垃圾回收 464 18.4.3 類型安全 464 18.4.4 代碼訪問安全性 465 18.4.5 平臺可移植性 465 18.4.6 性能 466 18.5 應用程序域 466 18.6 程序集、清單和模塊 466 18.7 公共中間語言 468 18.8 公共類型系統 468 18.9 公共語言規范 469 18.10 基類庫 469 18.11 元數據 469 18.12 小結 470
附錄A 下載和安裝C#編譯器與CLI平臺 472 A.1 Microsoft.NET 472 A.2 Mono 473 附錄B 完整源代碼清單 474 附錄C C# 2.0主題 497 |
序: |
|