第Ⅰ部分 核 心 語 言
第1章 Visual C#編程介紹 3
1.1 語言的起源 4
1.2 C#核心語言特征 6
1.2.1 符號與標記 7
1.2.2 關鍵字 20
1.2.3 基元 23
1.3 C#示例程序 23
1.4 命名空間 25
1.5 Main入口點 27
1.6 局部變量 28
1.7 可空類型 29
1.8 表達式 29
1.9 選擇語句 30
1.10 迭代語句 32
1.11 類 34
第2章 類型 35
2.1 類 36
2.1.1 類成員 37
2.1.2 成員函數 42
2.2 結構 59
2.3 枚舉 60
2.4 恒等與等價 62
2.5 類的細化 63
第3章 繼承 64
3.1 繼承示例 68
跨語言繼承 68
3.2 System.Object 70
3.2.1 Object.Equals方法 71
3.2.2 Object.GetHashCode方法 72
3.2.3 Object.GetType方法 72
3.2.4 Object.ToString方法 73
3.2.5 Object.MemberwiseClone方法 73
3.2.6 Object.Referen eEquals方法 74
3.3 Employee類 75
3.4 實現繼承 76
3.5 重寫 77
3.5.1 virtual和override關鍵字 77
3.5.2 重載與重寫 78
3.5.3 重寫事件 79
3.6 new修飾符 79
3.7 抽象類 83
3.8 密封類 84
3.9 構造函數和析構函數 85
3.10 接口 87
3.10.1 實現接口 89
3.10.2 接口成員的顯式實現 90
3.10.3 接口的再實現 93
3.11 多態(tài)性 94
3.11.1 接口多態(tài)性 97
3.11.2 new修飾符和多態(tài)性 98
3.12 強制轉換 99
3.13 屬性繼承 103
3.14 Visual Studio .NET 2005 104
第Ⅱ部分 核 心 功 能
第4章 Visual Studio 2005介紹 107
4.1 集成開發(fā)環(huán)境 107
4.1.1 起始頁 108
4.1.2 社區(qū)集成 108
4.1.3 創(chuàng)建項目 109
4.1.4 解決方案資源管理器 109
4.1.5 添加引用 112
4.1.6 數據菜單 113
4.1.7 Visual Studio中的管理窗口 113
4.1.8 自動恢復 114
4.2 類層次結構 115
4.2.1 類視圖窗口 115
4.2.2 對象瀏覽器 116
4.2.3 類關系圖 116
4.2.4 繼承 119
4.2.5 關聯 120
4.2.6 類關系圖演練 121
4.2.7 “錯誤列表”窗口 124
4.3 代碼編輯器 125
4.3.1 IntelliSense 125
4.3.2 外側代碼 126
4.3.3 字體和顏色格式 126
4.3.4 源代碼格式 127
4.3.5 更改跟蹤 127
4.3.6 用戶配置文件 128
4.4 代碼段 129
4.4.1 復制和粘貼 129
4.4.2 插入代碼段 130
4.4.3 默認代碼段 131
4.4.4 代碼段管理器 132
4.4.5 創(chuàng)建代碼段 133
4.5 重構 138
4.6 生成和部署 142
4.7 MSBuild 142
4.7.1 項 142
4.7.2 屬性 143
4.7.3 任務 143
4.7.4 項目文件 144
4.7.5 MSBuild演練 145
4.8 ClickOnce部署 146
4.9 數組和集合 151
第5章 數組和集合 152
5.1 數組 154
5.1.1 數組元素 155
5.1.2 多維數組 155
5.1.3 交錯數組 157
5.1.4 System.Array 158
5.1.5 System.Array屬性 165
5.1.6 params關鍵字 170
5.1.7 數組轉換 172
5.2 集合 173
5.2.1 數組列表集合 174
5.2.2 位數組集合 177
5.2.3 哈希表集合 179
5.2.4 隊列集合 183
5.2.5 堆棧集合 187
5.2.6 特殊集合 188
5.3 泛型 188
第6章 泛型 189
6.1 泛型類型 192
6.1.1 類型參數 192
6.1.2 構造類型 195
6.2 泛型方法 196
6.2.1 重載方法 196
6.2.2 泛型類型的this引用 198
6.3 約束 198
6.3.1 派生約束 199
6.3.2 接口約束 203
6.3.3 值類型約束 204
6.3.4 引用類型約束 205
6.3.5 默認構造函數約束 205
6.4 強制類型轉換 206
6.5 繼承 207
6.5.1 重寫方法 208
6.5.2 嵌套類型 209
6.6 靜態(tài)成員 210
6.6.1 運算符函數 211
6.6.2 序列化 212
6.6.3 泛型內部機理 214
6.6.4 泛型集合 215
6.7 枚舉器 215
第7章 迭代器 216
7.1 枚舉對象 217
7.1.1 枚舉器 217
7.1.2 枚舉器例子 219
7.1.3 枚舉器例子(靜態(tài)集合) 220
7.1.4 枚舉器舉例(版本集合) 221
7.1.5 IEnumerator問題 223
7.2 泛型枚舉器 223
7.2.1 IEnumerable接口 223
7.2.2 IEnumerator 接口 224
7.2.3 泛型枚舉器舉例(版本集合) 225
7.3 迭代器 227
7.3.1 yield語句 227
7.3.2 迭代器塊 228
7.3.3 迭代器內部機理 229
7.3.4 迭代器舉例 230
7.4 委托和事件 233
第Ⅲ部分 C#語言詳述
第8章 委托和事件 237
8.1 委托 238
8.1.1 定義一個委托 239
8.1.2 創(chuàng)建一個委托 239
8.1.3 調用一個委托 241
8.1.4 委托數組 241
8.1.5 異步調用 247
8.1.6 異步委托關系圖 250
8.1.7 異常 251
8.2 匿名方法 252
8.2.1 外部變量 254
8.2.2 泛型匿名方法 256
8.2.3 匿名方法的限制 256
8.3 事件 256
8.3.1 發(fā)布一個事件 257
8.3.2 訂閱 258
8.3.3 引發(fā)一個事件 258
8.4 異常處理 260
第9章 異常處理 261
9.1 異常舉例 262
9.2 公共異常模型 262
9.3 結構化的異常處理 263
9.3.1 try語句 263
9.3.2 catch 語句 264
9.3.3 finally語句 266
9.3.4 異常信息表 267
9.3.5 嵌套try塊 267
9.4 System.Exception 269
9.4.1 System.Exception函數 269
9.4.2 System.Exception屬性 270
9.4.3 應用程序異常 271
9.4.4 異常轉化 273
9.4.5 COM互操作性異常 273
9.5 遠程異常 277
9.6 未處理異常 278
9.6.1 Application.ThreadException 279
9.6.2 AppDomain.Unhandled-
Exception 280
9.7 在Visual Studio中管理異常 281
9.7.1 異常助手 281
9.7.2 異常對話框 282
9.8 元數據和反射 282
第Ⅳ部分 調 試
第10章 元數據和反射 285
10.1 元數據 285
10.1.1 標記 287
10.1.2 元數據堆 287
10.1.3 流 288
10.1.4 元數據驗證 288
10.1.5 ILDASM工具 289
10.2 反射 293
10.2.1 獲得一個Type對象 293
10.2.2 加載程序集 295
10.2.3 瀏覽Type信息 297
10.2.4 動態(tài)調用 300
10.2.5 類型的創(chuàng)建 304
10.2.6 晚期綁定 306
10.2.7 函數調用性能 308
10.3 反射和泛型 308
10.3.1 IsGeneri 和IsGeneri TypeDefinition 308
10.3.2 typeof 309
10.3.3 GetType 309
10.3.4 GetGeneri TypeDefinition 310
10.3.5 GetGeneri Arguments 311
10.3.6 創(chuàng)建泛型類型 312
10.3.7 反射的安全性 313
10.3.8 屬性 313
10.3.9 創(chuàng)建一個自定義屬性 316
10.3.10 屬性和反射 319
10.4 MSIL 321
第11章 MSIL編程 322
11.1 “Hello World”應用程序 324
11.2 計算堆棧 325
11.3 MSIL深度探索 326
11.3.1 指令 326
11.3.2 程序集指令 326
11.3.3 類指令 328
11.3.4 方法指令 331
11.3.5 MSIL指令 333
11.4 復雜任務 335
11.5 分支 340
11.6 數組 343
11.7 算術指令 345
11.7.1 轉換操作 345
11.7.2 異常處理 346
11.7.3 其他操作 347
11.8 進程執(zhí)行 348
11.9 用Visual Studio 2005進行調試 351
第12章 用Visual Studio 2005進行調試 352
12.1 調試Windows窗體的項目 353
12.1.1 附加到一個運行進程 353
12.1.2 調試控制臺應用程序項目 355
12.1.3 調試類庫項目 355
12.2 調試設置 355
12.2.1 調試和發(fā)布配置 355
12.2.2 配置管理器 356
12.3 調試設置 357
12.3.1 Visual Studio環(huán)境調試設置 357
12.3.2 解決方案的調試設置 361
12.3.3 一個項目的調試設置 361
12.4 Visual Studio調試用戶界面 363
12.4.1 數據提示 363
12.4.2 可視化工具 363
12.5 斷點 365
12.5.1 函數斷點 365
12.5.2 “斷點”窗口 367
12.5.3 跟蹤點 370
12.5.4 斷點符號 372
12.6 代碼分步 372
12.6.1 分布命令 372
12.6.2 設定下一條語句演練 373
12.7 “調試”工具欄 374
12.8 調試窗口 374
12.8.1 “斷點”窗口 374
12.8.2 “輸出”窗口 374
12.8.3 “腳本資源管理器” 375
12.8.4 “監(jiān)視”窗口 375
12.8.5 “自動”窗口 378
12.8.6 “局部變量”窗口 378
12.8.7 “即時”窗口 378
12.8.8 “調用堆?!贝翱?380
12.8.9 “線程”窗口 381
12.8.10 “模塊”窗口 381
12.8.11 “進程”窗口 382
12.8.12 “內存”窗口 382
12.8.13 “反匯編”窗口 383
12.8.14 “寄存器”窗口 383
12.9 跟蹤 384
12.9.1 跟蹤示例 391
12.9.2 配置文件 393
12.9.3 有配置文件的跟蹤示例 394
12.10 DebuggerDisplayAttribute 396
12.10.1 DebuggerBrowsable-Attribute 398
12.10.2 DebuggerTypeProxy-Attribute 399
12.11 轉儲文件 400
12.12 高級調試 401
第13章 高級調試 402
13.1 DebuggableAttribute屬性 404
13.2 調試器 405
13.3 實時調試 406
13.4 托管調試器 408
13.4.1 MDbg演練 408
13.4.2 MDbg命令 411
13.5 WinDbg 413
13.6 Son of Strike (SOS) 419
13.6.1 SOS演練部分I 419
13.6.2 SOS演練部分II 422
13.7 轉儲 423
13.7.1 ADPlus 424
13.7.2 Dr. Watson 425
13.8 內存管理 428
13.8.1 引用樹 429
13.8.2 代 431
13.8.3 終結 434
13.8.4 性能監(jiān)試器 434
13.9 線程 435
13.10 異常 441
13.11 符號 442
13.11.1 Symsrv Symbol Server 443
13.11.2 應用程序符號 443
13.12 內存管理 444
第Ⅴ部分 高 級 概 念
第14章 內存管理 447
14.1 非托管資源 448
14.1.1 垃圾回收概述 449
14.1.2 GC風格 452
14.2 終結器 454
14.2.1 終結器線程 458
14.2.2 終結器注意事項 458
14.3 IDisposable.Dispose 465
14.3.1 可處置模式 469
14.3.2 可處置模式的注意事項 470
14.3.3 處置內部對象 473
14.4 弱引用 475
14.4.1 弱引用內部機理 477
14.4.2 弱引用類 477
14.4.3 關鍵終結對象 477
14.4.4 約束執(zhí)行區(qū)域 478
14.4.5 管理非托管資源 480
14.5 GC類 482
14.6 不安全代碼 483
第15章 不安全代碼 484
15.1 unsafe關鍵字 486
15.1.1 指針 487
15.1.2 指針參數和返回 490
15.1.3 平臺調用 493
15.2 結語 504
附錄A 運算符重載 505