Accelerated C#2008 C#捷徑教程

《AcceleratedC#2008C#捷徑教程》是2009年人民郵電出版社出版的圖書,作者是AcceleratedC#2008C#捷徑教程。

內容提要

C# 3.0 提供了很多強大的特性,通過使用lambda 表達式、擴展方法和語言集成查詢(LINQ),方便地引入了函式式編程,使C# 程式設計師如虎添翼。《Accelerated C#2008 C#捷徑教程》通過許多精彩的示例介紹了每個特性,深入淺出地講解了C# 語言的核心概念,以及如何聰明地套用C# 的習慣用法和面向對象的設計模式來挖掘C# 和CLR 的能力。

《Accelerated C#2008 C#捷徑教程》適合有一定編程經驗的程式設計師閱讀。

圖書目錄

第1章 C#預覽 1
1.1 C#和C++的區別 1
1.1.1 C# 1
1.1.2 C++ 1
1.1.3 CLR垃圾回收 2
1.2 C#程式示例 3
1.3 C# 2.0擴展特性概述 4
1.4 C# 3.0新特性概覽 5
1.5 小結 6
第2章 C#和CLR 7
2.1 CLR中的JIT編譯器 7
2.2 程式集及程式集載入器 9
2.2.1 最小化程式的工作集 9
2.2.2 給程式集命名 9
2.2.3 載入程式集 10
2.3 元數據 10
2.4 交叉語言的兼容性 11
2.5 小結 12
第3章 C#語法概述 13
3.1 C#是一門強類型的語言 13
3.2 表達式 14
3.3 語句和表達式 15
3.4 類型和變數 15
3.4.1 值類型 16
3.4.2 引用類型 19
3.4.3 默認變數初始化 20
3.4.4 隱式類型化局部變數 20
3.4.5 類型轉換 22
3.4.6 as和is操作符 23
3.4.7 泛型 25
3.5 命名空間 26
3.5.1 定義命名空間 27
3.5.2 使用命名空間 28
3.6 控制流 29
3.6.1 if-else、while、do-while和for 29
3.6.2 switch 29
3.6.3 foreach 30
3.6.4 break、continue、goto、return和throw 31
3.7 小結 31
第4章 類、結構和對象 32
4.1 類定義 33
4.1.1 欄位 34
4.1.2 構造函式 36
4.1.3 方法 37
4.1.4 屬性 38
4.1.5 封裝 42
4.1.6 可訪問性 45
4.1.7 接口 46
4.1.8 繼承 47
4.1.9 密封類 53
4.1.10 抽象類 53
4.1.11 嵌套類 54
4.1.12 索引器 57
4.1.13 分部類 59
4.1.14 分部方法 59
4.1.15 靜態類 61
4.1.16 保留的成員名字 62
4.2 值類型定義 63
4.2.1 構造函式 63
4.2.2 this的含義 65
4.2.3 終結器 68
4.2.4 接口 68
4.3 匿名類型 68
4.4 對象初始化器 71
4.5 裝箱和拆箱 73
4.5.1 什麼時候發生裝箱 77
4.5.2 效率和混淆 78
4.6 System.Object 79
4.6.1 等同性及其意義 80
4.6.2 IComparable接口 81
4.7 創建對象 81
4.7.1 new關鍵字 81
4.7.2 欄位初始化 82
4.7.3 靜態(類)構造函式 83
4.7.4 實例構造函式和創建順序 85
4.8 銷毀對象 89
4.8.1 終結器 89
4.8.2 確定性的析構 90
4.8.3 異常處理 91
4.9 可清除對象 91
4.9.1 IDisposable接口 91
4.9.2 using關鍵字 93
4.10 方法參數類型 95
4.10.1 值參數 95
4.10.2 ref參數 95
4.10.3 out參數 97
4.10.4 參數數組 97
4.11 方法重載 98
4.12 繼承和虛方法 98
4.12.1 虛方法和抽象方法 98
4.12.2 override和new方法 99
4.12.3 密封方法 100
4.12.4 關於C#虛方法再囉嗦幾句 101
4.13 繼承,包含和委託 101
4.13.1 接口繼承和類繼承的選擇 101
4.13.2 委託和組合與繼承 102
4.14 小結 104
第5章 接口和契約 105
5.1 接口定義類型 105
5.2 定義接口 107
5.2.1 接口中可以有什麼 107
5.2.2 接口繼承與成員隱藏 108
5.3 實現接口 110
5.3.1 隱式接口實現 110
5.3.2 顯式接口實現 110
5.3.3 派生類中覆蓋接口實現 112
5.3.4 小心值類型實現接口的副作用 115
5.4 接口成員匹配規則 116
5.5 值類型的顯示接口實現 119
5.6 版本考慮 121
5.7 契約 122
5.7.1 類實現契約 122
5.7.2 接口契約 123
5.8 在接口和類之間選擇 124
5.9 小結 127
第6章 重載操作符 128
6.1 只因為:可以並不意味著應該 128
6.2 重載操作符的類型和格式 128
6.3 操作符不應該改變其運算元 129
6.4 參數順序有影響么 130
6.5 重載加法運算符 130
6.6 可重載的操作符 131
6.6.1 比較操作符 132
6.6.2 轉換操作符 134
6.6.3 布爾操作符 136
6.7 小結 139
第7章 異常處理和異常安全 140
7.1 CLR如何對待異常 140
7.2 C#里的異常處理機制 140
7.2.1 拋出異常 141
7.2.2 .NET 2.0開始的未處理異常的變化 141
7.2.3 try語句語法預覽 142
7.2.4 重新拋出異常和轉譯異常 144
7.2.5 finally代碼塊拋出的異常 146
7.2.6 終結器拋出的異常 146
7.2.7 靜態構造函式拋出的異常 147
7.3 誰應該處理異常 148
7.4 避免使用異常來控制流程 149
7.5 取得異常中立 149
7.5.1 異常中立代碼的基本結構 149
7.5.2 受限執行區域 154
7.5.3 臨界終結器和SafeHandle 156
7.6 創建定製的異常類 159
7.7 使用分配的資源和異常 161
7.8 提供回滾行為 164
7.9 小結 167
第8章 使用字元串 168
8.1 字元串概述 168
8.2 字元串字面量 169
8.3 格式指定和全球化 170
8.3.1 Object.ToString、IFormattable和CultureInfo 170
8.3.2 創建和註冊自定義CultureInfo類型 171
8.3.3 格式化字元串 173
8.3.4 Console.WriteLine和String. Format 174
8.3.5 自定義類型的字元串格式化舉例 175
8.3.6 ICustomFormatter 176
8.3.7 字元串比較 178
8.4 處理來自外部的字元串 179
8.5 StringBuilder 181
8.6 使用正則表達式搜尋字元串 182
8.6.1 使用正則表達式搜尋 183
8.6.2 搜尋和分組 184
8.6.3 使用正則表達式替換文本 187
8.6.4 正則表達式創建選項 189
8.7 小結 191
第9章 數組、容器類型和疊代器 192
9.1 數組介紹 192
9.1.1 隱式類型化數組 193
9.1.2 類型的轉換和協方差 195
9.1.3 排序和搜尋 195
9.1.4 同步 196
9.1.5 向量與數組 196
9.2 多維矩形數組 198
9.3 多維鋸齒數組 199
9.4 容器類型 201
9.4.1 比較ICollectionT和ICollection 201
9.4.2 容器同步 202
9.4.3 列表 203
9.4.4 字典 203
9.4.5 集合 204
9.4.6 System.Collections.ObjectModel 204
9.4.7 效率 207
9.5 IEnumerableT、IEnumeratorT、IEnumerable和IEnumerator 208
9.6 疊代器 211
9.7 容器初始化器 220
9.8 小結 220
第10章 委託,匿名方法和事件 222
10.1 委託概覽 222
10.2 委託的創建和使用 223
10.2.1 單委託 223
10.2.2 委託鏈 224
10.2.3 疊代委託鏈 226
10.2.4 非綁定(公開實例)的委託 227
10.3 事件 230
10.4 匿名方法 233
10.4.1 注意捕獲變數的使用 237
10.4.2 匿名方法作為委託參數綁定器 239
10.5 Strategy模式 243
10.6 小結 244
第11章 泛型 245
11.1 泛型和C++模板之間的區別 246
11.2 泛型的效率和類型安全 246
11.3 泛型的類型定義和構造類型 248
11.3.1 泛型類和結構 249
11.3.2 泛型接口 251
11.3.3 泛型方法 251
11.3.4 泛型委託 253
11.3.5 泛型轉換 256
11.3.6 默認值表達式 257
11.3.7 Nullable類型 258
11.3.8 構造類型訪問許可權控制 260
11.3.9 泛型和繼承 260
11.4 約束 261
11.5 泛型系統容器 266
11.6 泛型系統接口 268
11.7 精選的問題和解決方案 269
11.7.1 泛型類型中的轉化和操作符 269
11.7.2 動態地創建構造類型 277
11.8 小結 279
第12章 C#中的執行緒 280
12.1 C#和.NET中的執行緒 280
12.1.1 開始執行緒編程 281
12.1.2 IOU模式和異步方法調用 283
12.1.3 執行緒狀態 283
12.1.4 終止執行緒 286
12.1.5 停止和喚醒休眠執行緒 287
12.1.6 等待執行緒退出 288
12.1.7 前台和後台執行緒 288
12.1.8 執行緒本地存儲 289
12.1.9 非託管執行緒和COM套件如何適應 292
12.2 執行緒間同步工作 293
12.2.1 用Interlocked類實現輕量級的同步 295
12.2.2 Monitor類 299
12.2.3 鎖對象 307
12.2.4 信號量 311
12.2.5 事件 312
12.2.6 Win32的同步對象和WaitHandle 313
12.3 使用執行緒池 315
12.3.1 異步方法調用 315
12.3.2 定時器 322
12.4 小結 323
第13章 C#規範形式探索 324
13.1 引用類型的規範形式 324
13.1.1 類默認是密封的 325
13.1.2 使用非虛擬接口模式 326
13.1.3 對象是否可克隆 328
13.1.4 對象是否可清除 333
13.1.5 對象需要終結器嗎 336
13.1.6 對象相等意味著什麼 342
13.1.7 如果重寫了Equals方法,那么也應該重寫GetHashCode方法 348
13.1.8 對象支持排序嗎 350
13.1.9 對象需要形式化顯示嗎 353
13.1.10 對象可以被轉換嗎 356
13.1.11 在所有情況下都保證類型安全 357
13.1.12 使用非可變的引用類型 361
13.2 值類型的規範形式 364
13.2.1 為了獲得更好的性能而重寫Equals方法 364
13.2.2 值類型需要支持接口嗎 368
13.2.3 將接口成員和派生方法實現為類型安全的形式 369
13.3 小結 371
13.3.1 引用類型的檢查單 372
13.3.2 值類型的檢查單 373
第14章 擴展方法 374
14.1 擴展方法介紹 374
14.1.1 編譯器如何發現擴展方法 375
14.1.2 探究內部實現 377
14.1.3 代碼易讀性與代碼易懂性 378
14.2 使用建議 379
14.2.1 考慮擴展方法優先於繼承 379
14.2.2 分離的命名空間中的隔離擴展方法 380
14.2.3 修改一個類型的契約可能會打破擴展方法 381
14.3 轉換 381
14.4 鏈式操作 385
14.5 自定義疊代器 386
14.6 訪問者模式 392
14.7 小結 396
第15章 lambda表達式 397
15.1 lambda表達式介紹 397
15.1.1 lambda表達式 398
15.1.2 lambda語句 402
15.2 表達式樹 403
15.2.1 對表達式的操作 404
15.2.2 函式的數據表現 405
15.3 lambda表達式的有益套用 406
15.3.1 疊代器和生成器重訪問 406
15.3.2 閉包(變數捕獲)和快取 409
15.3.3 currying 413
15.3.4 匿名遞歸 415
15.4 小結 416
第16章 LINQ:語言集成查詢 417
16.1 連線數據的橋樑 417
16.1.1 查詢表達式 418
16.1.2 再談擴展方法和lambda表達式 420
16.2 標準查詢操作符 420
16.3 C#查詢關鍵字 422
16.3.1 from子句和範圍變數 422
16.3.2 join子句 423
16.3.3 where子句和過濾器 425
16.3.4 orderby子句 425
16.3.5 select子句和投影 426
16.3.6 let子句 427
16.3.7 group子句 429
16.3.8 into子句和持續性 431
16.4 偷懶的好處 432
16.4.1 C#疊代器鼓勵懶惰 432
16.4.2 不能偷懶 433
16.4.3 立即執行查詢 435
16.4.4 再談表達式樹 435
16.5 函式式編程中的技術 436
16.5.1 自定義標準查詢操作符和延遲求值 436
16.5.2 替換foreach語句 443
16.6 小結 444

編輯推薦與評論

如果你已經有一定C#或者其他語言的編程經驗,就完全不用去讀那些膚淺的入門書或者冗長繁複的大部頭。《Accelerated C#2008 C#捷徑教程》將為你提供一條快速掌握C#的捷徑。
作者在不大的篇幅里容納了豐富紮實的內容,不僅全面涵蓋了C#的語言特性,包括3.O引入的Lambda表達式、擴展方法和LlNQ等,總結了正確使用C#的習慣用法和設計模式。而且深入探討了CLR。書中大量富於啟發性的實例和經驗之談。更能讓你的軟體開發水平得到質的飛躍。

作者介紹

TreyNash,知名.NET技術專家。現於領先的無線設備提供商CSR公司擔任主任工程師。負責藍牙解決方案的開發。在轉向.NET平台之前。他有豐富的COM,DCOM/ATL編程經驗。

相關搜尋

熱門詞條

聯絡我們