前言
C#發展路綫圖
C#4.0新特性總述
為何寫作本書
本書麵嚮的讀者
如何閱讀本書
緻謝
第一部分:準備篇 1
第1章 .NET體係結構 1
1.1 .NET框架概述 3
1.2 .NET的平颱無關性 4
1.3公共語言運行時(CLR) 5
1.4 通用類型係統(CTS) 6
1.4.1值類型和引用類型 7
1.4.2裝箱和拆箱 8
1.5 公共語言規範(CLS) 10
1.6 語言的互操作性 11
1.4即時編譯(JIT) 12
1.5中間語言(CIL) 13
1.6基類庫(BCL) 14
第2章 從“Hello World!”開始 15
2.1一個簡單的C#程序 15
2.2編譯和運行程序 16
2.2.1在Visual Stuido 2010中編譯和運行 16
2.2.2通過命令行編譯和運行 17
2.3詳細介紹 21
2.4小結 25
第二部分:語法篇 26
第3章 標識符和關鍵字 26
3.1 標識符 26
3.2 關鍵字 27
3.3 標識符的命名約定 30
3.4 小結 30
第4章 變量、常量和類型 31
4.1變量 31
4.1.1給變量命名 32
4.1.2聲明變量 32
4.1.3變量的初始化 33
4.1.4 類型推斷 35
4.1.5變量的作用域 36
4.2常量 40
4.3C#數據類型 40
4.3.1內置的值類型 42
4.3.2 內置的引用類型 52
4.3.3指針類型 59
4.3.4 Nullable類型 60
4.3.5 dynamic類型 61
4.4 進階閱讀:關於動態語言運行時(DLR) 63
第5章 類型轉換 66
5.1隱式類型轉換 66
5.1.1 數值類型 68
5.1.2 引用類型 69
5.1.3 裝箱 70
5.2 顯式類型轉換 71
5.2.1數值類型 73
5.2.2溢齣檢查 73
5.2.3引用類型 75
5.2.4拆箱 76
5.3 as和is運算符 76
第6章 錶達式和運算符 83
6.1 錶達式 83
6.2 運算符的類型 84
6.3 運算符的優先級 85
6.4 算術運算符 86
6.5 求餘運算符 87
6.6 遞增運算符和遞減運算符 88
6.7 關係和類型檢測運算符 90
6.8 相等性判斷運算符 91
6.9 條件運算符 93
6.10 邏輯運算符 95
6.11 位運算符 96
6.12 賦值運算符 97
6.13 typeof運算符 99
6.14 運算符重載 100
6.14.1 運算符重載 101
6.14.2 可重載的運算符 102
第7章 語句 103
7.1 什麼是語句 103
7.2 程序的三種結構 103
7.2.1 順序結構 104
7.2.2 分支結構 104
7.2.3 循環結構 105
7.3 條件語句 106
7.3.1 if語句 106
7.3.2 switch語句 110
7.4 跳轉語句 112
7.4.1 break語句 112
7.4.2 continue語句 114
7.4.3 return語句 115
7.4.4 throw語句 116
7.4.5 goto語句 116
7.4.6 default語句 117
7.5 標簽語句 117
7.5.1 標簽 118
7.5.2 標簽語句的有效範圍 118
7.6 循環語句 118
7.6.1 while循環 119
7.6.2 do…while循環 120
7.6.3 for循環 121
7.6.4 foreach…in循環 123
7.7 using語句 124
第8章 方法 127
8.1 方法的構成 127
8.2 局部變量和常量 128
8.3 方法的調用 130
8.4 返迴值 131
8.5 參數 132
8.5.1 形參 132
8.5.2 實參 133
8.5.3 新特性:命名和可選參數 134
8.6 四種類型的參數 139
8.6.1 按值傳遞參數 139
8.6.2 按引用傳遞參數,關鍵字:ref 142
8.6.3 輸齣參數,關鍵字:out 145
8.6.4 參數數組,關鍵字:params 148
8.7 棧幀 150
8.8 遞歸 151
8.9 方法的重載 152
8.10靜態方法 154
第9章 類 156
9.1 類是什麼 156
9.2 “Hello World”程序迴顧 157
9.3 類的聲明 158
9.4 類的成員 159
9.4.1 字段 160
9.4.2 靜態字段 161
9.4.3 方法 163
9.4.4 字段的初始化 163
9.4.5 屬性 165
9.5 類的實例:對象 177
9.6 實例化中的內存分配 178
9.7 實例的成員 179
9.8 this關鍵字 179
9.9 訪問修飾符 181
9.10 訪問類的成員 182
9.10.1 從類內部訪問成員 182
9.10.2 從類外部訪問成員 183
9.10.3 從類外部訪問靜態成員 184
9.11 構造函數 185
9.12 對象初始化列錶 193
9.13 析構函數 196
9.14 隻讀字段和常數 198
9.15 索引器 200
9.16 分部類型和分部方法,修飾符:partial 201
9.16.1 分部類 202
9.16.2 分部方法 204
9.17 注釋 208
9.17.1 行注釋 208
9.17.2 塊注釋 210
9.17.3 XML文檔注釋 211
第10章 繼承 215
10.1 類的繼承 215
10.2 訪問繼承的成員 217
10.3 使用new修飾符隱藏基類的成員 219
10.4 訪問基類的成員 221
10.5 類的初始化順序 222
10.6 在派生類中指定基類構造函數 224
10.7 類的訪問修飾符 229
10.8 跨程序集的繼承 229
10.9 密封類 231
10.10 靜態類 232
10.11 擴展方法 234
10.12 派生類型的嚮上轉型 236
第11章 多態 238
11.1 重載方法 239
11.2 虛方法 243
11.3 覆寫方法 244
11.4 覆寫標記為override的方法 246
11.5 抽象類及抽象方法 249
第12章 接口 252
12.1 定義接口 253
12.2 聲明和實現接口 254
12.3 基類中的實現作為接口實現 258
12.4 實現多個接口 259
12.5 實現具有相同成員的接口 261
12.6 顯式接口成員實現 263
12.7 調用顯式接口成員實現 265
12.8 接口的派生 267
第13章 結 構 269
13.1 什麼是結構 269
13.2 結構是值類型 270
13.3 給結構賦值 273
13.4 構造函數 275
13.4.1 實例構造函數 275
13.4.2 靜態構造函數 277
13.5 多態和可繼承性 279
13.6 裝箱和拆箱 280
13.7 結構和類的對比 281
13.7.1字段初始化 282
13.7.2性能 283
13.7.3結構和類的適用場閤分析 286
第14章 枚 舉 287
14.1 什麼是枚舉 287
14.2 設置枚舉的底層數據類型 291
14.3 顯式設置枚舉的成員常量值 292
14.4 使用標誌枚舉 294
14.5一些使用建議 296
第15章 委 托 298
15.1 什麼是委托 298
15.2 委托是引用類型 299
15.3 委托的聲明和實例化 300
15.4 委托的組閤 302
15.5 為委托添加一個方法 304
15.6 從委托中刪除一個方法 305
15.7 委托在迴調中的應用 307
15.8 委托中的協變和逆變 309
15.9 匿名方法 312
15.10 λ錶達式 315
第16章 事 件 318
16.1 什麼是事件 318
16.2 事件和委托的關係 319
16.3 如何聲明事件 319
16.4 訂閱事件 321
16.5 觸發事件 324
16.6 使用和擴展EventArgs類 325
16.7 使用自定義委托 327
16.8 事件訪問器 330
第17章 泛 型 332
17.1 什麼是泛型 332
17.2 泛型類型 335
17.3 泛型類型的聲明和實例化 337
17.4 類型參數 342
17.5 類型參數的約束 343
17.5.1 Where子句 344
17.5.2 約束類型和順序 345
17.6 泛型類 346
17.7 泛型結構 350
17.8 泛型接口 351
17.9 泛型委托 354
17.10 泛型方法 356
17.11 擴展方法和泛型類 358
17.12 協變和逆變 360
第18章 數 組 362
18.1 數組的聲明 363
18.2 數組的類型 364
18.3 數組派生自Array對象 365
18.4 實例化數組 366
18.5 初始化數組 368
18.5.1 顯式初始化一維數組 369
18.5.2 顯式初始化矩形數組及要點 370
18.5.3 隱式類型數組 373
18.6 訪問數組元素 374
18.7 交錯數組 375
18.7.1 交錯數組的聲明 376
18.7.2 交錯數組的實例化 376
18.7.3 交錯數組的初始化 377
18.8 矩形數組和交錯數組的對比 378
18.9 使用foreach和for語句訪問數組 381
18.9.1 foreach語句 381
18.9.2 for語句 383
18.9.3 迭代變量 384
18.10 數組協變 386
18.11 從Array對象繼承的成員 388
18.12 數組的淺復製和深復製 390
第19章 集 閤 396
19.1 集閤接口 396
19.2 常用的幾種集閤類型 400
19.2.1 ArrayList 402
19.2.2 Hashtable 406
19.2.3 Queue和Queue<T> 410
19.2.4 SortedList 414
19.2.5 Stack和Stack<T> 416
19.2.6 BitArray 420
19.2.7 List<T> 422
19.2.8 HashSet<T> 434
19.3 自定義集閤 439
19.3.1 CollectionBase 440
19.3.2 ReadOnlyCollectionBase 445
19.4 迭代器 448
19.5 泛型集閤接口支持協變和逆變 452
19.6 LINQ to Objects 456
19.6.1 LINQ簡介 456
19.6.2 查詢語法 458
19.6.3 方法語法 459
19.6.4 查詢操作的組成 459
19.6.5 關於查詢變量 460
19.6.6 查詢語法和方法語法的統一 461
第20章 字符串與正則錶達式 462
20.1 理解字符串 462
20.2 字符串的常用成員 465
20.3 字符串格式化 474
20.4 使用StringBuilder類 480
20.5 正則錶達式 482
20.5.1 正則錶達式基本語法 484
20.5.2 .NET對於正則錶達式的支持 491
20.5.3開始使用正則錶達式 496
第21章 異常處理 500
21.1 異常類 500
21.2拋齣異常 502
21.3捕獲異常 503
21.4自定義的異常類 507
21.5異常處理的原則 508
第22章 命名空間和程序集 510
22.1 命名空間 510
22.1.1 使用命名空間 511
22.1.2 使用彆名 514
22.2 程序集 515
22.2.1 程序集的結構 518
22.2.2 程序集清單 519
22.2.3 私有程序集和共享程序集 521
22.2.4 應用程序域 521
22.2.5 創建動態程序集並動態加載執行 524
22.2.6 全局程序集緩存 528
第23章 預處理指令 534
23.1 什麼是預處理指令 534
23.2 先來觀察一段示例 534
23.3 預處理指令集 536
23.4 #define和#undef指令 537
23.5 條件編譯指令 538
23.6 #warning和#error指令 540
23.7 #line指令 541
23.8 #region和#endregion指令 544
23.9 #pragma warning指令 546
第24章 元數據和特性 548
24.1 元數據 548
24.1.1 從IntelliSense談起 554
24.1.2 訪問元數據 556
24.2 特性(Attribute) 564
24.2.1 什麼是特性 567
24.2.2 創建自定義特性 573
24.2.3 訪問特性 581
24.2.4 常用特性 582
24.2.5特性應用完整示例 595
第25章 異步編程和多綫程編程 600
25.1 進程和綫程 600
25.2 BeginInvoke 和 EndInvoke 603
25.3 IAsyncResult接口和AsyncResult類 604
25.4 異步編程的4種方法 606
25.4.1 使用EndInvoke 606
25.4.2 使用WaitHandle 607
25.4.3 輪詢 609
25.4.4 迴調 611
25.5 多綫程編程 613
25.5.1 Thread類 613
25.5.2 使用綫程池 615
25.5.3 綫程同步 617
25.5.4 死鎖 622
第26章 I/O操作 627
26.1 文件和目錄 627
26.1.1 File和Directory 628
26.1.2 FileInfo和DirectoryInfo 630
26.1.3 文件I/O的改進 634
26.2 流(Stream) 641
26.3 異步操作 646
26.4 網絡流(NetworkStream)的使用 649
26.5 序列化 655
26.5.1 BinaryFormatter 658
26.5.2 SoapFormatter 660
26.5.3 XML序列化 664
26.6 獨立存儲機製 668
第27章 XML處理 671
27.1 System.Xml命名空間 671
27.2 使用DOM 672
27.3 XPath和XSLT 678
27.4 LINQ to XML 684
27.4.1 LINQ to XML類庫介紹 684
27.4.2 創建XML文檔 685
27.4.3 使用LINQ進行遍曆和查詢 686
27.4.4 修改XML文檔 688
第28章 增強的COM Interop 690
28.1 Dynamic lookup 691
28.1.1 dynamic關鍵字 692
28.1.2 訪問Python代碼 693
28.1.3 訪問COM對象 696
28.2 改進的參數傳遞 698
28.3 完整示例 704
第29章 並行編程 708
29.1任務並行庫(TPL) 709
29.1.1並發和並行 710
29.1.2並行編程架構 711
29.2 Parallel 類 713
29.2.1 For方法重載一 715
29.2.2 For方法重載二 716
29.2.3 For方法重載三 722
29.3 Task類和Task<TResult>類 724
29.4 數據並行 726
29.5 任務並行 730
29.6 TaskFactory類和TaskFactory<TResult>類 733
29.6.1任務創建選項 737
29.6.2並發選項 753
29.6.3後續任務選項 757
29.7PLINQ 769
附錄A Visual Studio 2010快速入門 773
A.1Visual Studio 2010的安裝 773
A.2環境參數設置 778
A.3集成開發環境簡介 784
A.3.1起始頁 784
A.3.2菜單欄 790
A.3.3解決方案資源管理器 792
A.3.4 “屬性”選項卡 795
A.3.5工具箱 797
A.3.6可視化設計器 798
A.3.7代碼編輯器 799
A.3.8類視圖 807
A.3.9智能感知(IntelliSense) 808
A.4使用MSDN 810
A.5生成和調試項目 814
A.6外部工具——IL反匯編程序 821
· · · · · · (
收起)