第I部分 Visual C#和Visual Studio 2010概述
第1章 歡迎進入C#編程世界 3
1.1 開始在Visual Studio 2010環境中編程 3
1.2 編寫第一個程序 8
1.3 使用命名空間 12
1.4 創建圖形應用程序 15
第1章快速參考 22
第2章 使用變量、操作符和錶達式 25
2.1 理解語句 25
2.2 使用標識符 26
2.3 使用變量 27
2.3.1 命名變量 27
2.3.2 聲明變量 28
2.4 使用基本數據類型 28
2.4.1 未賦值的局部變量 29
2.4.2 顯示基本數據類型值 29
2.5 使用算術操作符 33
2.5.1 操作符和數據類型 33
2.5.2 深入瞭解算術操作符 35
2.5.3 控製優先級 37
.2.5.4 使用結閤性對錶達式進行求值 38
2.5.5 結閤性和賦值操作符 38
2.6 變量的遞增和遞減 39
2.7 聲明隱式類型的局部變量 40
第2章快速參考 42
第3章 方法和作用域 43
3.1 創建方法 43
3.1.1 聲明方法 43
3.1.2 從方法返迴數據 44
3.1.3 調用方法 46
3.2 使用作用域 48
3.2.1 定義局部作用域 48
3.2.2 定義類的作用域 49
3.2.3 重載方法 50
3.3 編寫方法 50
3.4 使用可選參數和命名參數 57
3.4.1 定義可選參數 58
3.4.2 傳遞命名參數 58
3.4.3 消除可選參數和命名參數的歧義 59
第3章快速參考 63
第4章 使用決策語句 65
4.1 聲明布爾變量 65
4.2 使用布爾操作符 66
4.2.1 理解相等和關係操作符 66
4.2.2 理解條件邏輯操作符 66
4.2.3 短路求值 67
4.2.4 操作符的優先級和結閤性總結 68
4.3 使用if語句來做齣決策 68
4.3.1 理解if語句的語法 69
4.3.2 使用代碼塊來對語句進行分組 70
4.3.3 嵌套if語句 70
4.4 使用switch語句 75
4.4.1 理解switch語句的語法 75
4.4.2 遵守switch語句的規則 76
第4章快速參考 79
第5章 使用復閤賦值和循環語句 81
5.1 使用復閤賦值操作符 81
5.2 使用while語句 82
5.3 編寫for語句 86
5.4 編寫do語句 88
第5章快速參考 95
第6章 管理錯誤和異常 97
6.1 處理錯誤 97
6.2 嘗試執行代碼和捕捉異常 98
6.2.1 未處理的異常 99
6.2.2 使用多個catch處理程序 100
6.2.3 捕捉多個異常 100
6.3 使用checked和unchecked整數運算 104
6.3.1 編寫checked語句 105
6.3.2 編寫checked錶達式 106
6.4 拋齣異常 107
6.5 使用finally塊 111
第6章快速參考 112
第II部分 理解C#語言
第7章 創建並管理類和對象 117
7.1 理解分類 117
7.2 封裝的目的 118
7.3 定義並使用類 118
7.4 控製可訪問性 119
7.4.1 使用構造器 120
7.4.2 重載構造器 121
7.5 理解靜態方法和數據 128
7.5.1 創建共享字段 129
7.5.2 使用const關鍵字創建靜態字段 130
7.5.3 靜態類 130
7.5.4 匿名類 132
第7章快速參考 134
第8章 理解值和引用 135
8.1 復製值類型的變量和類 135
8.2 理解null值和可空類型 139
8.2.1 使用可空類型 140
8.2.2 理解可為空類型的屬性 141
8.3 使用ref和out參數 142
8.3.1 創建ref參數 142
8.3.2 創建out參數 143
8.4 計算機內存的組織方式 145
8.5 System.Object類 147
8.6 裝箱 147
8.7 拆箱 148
8.8 數據類型的安全轉換 149
8.8.1 is操作符 150
8.8.2 as操作符 150
第8章快速參考 152
第9章 使用枚舉和結構來創建值類型 155
9.1 使用枚舉 155
9.1.1 聲明枚舉 155
9.1.2 使用枚舉 156
9.1.3 選擇枚舉文字常量值 157
9.1.4 選擇枚舉的基本類型 157
9.2 使用結構 159
9.2.1 聲明結構 161
9.2.2 理解結構和類的區彆 162
9.2.3 聲明結構變量 163
9.2.4 理解結構的初始化 164
9.2.5 復製結構變量 167
第9章快速參考 170
第10章 使用數組和集閤 171
10.1 什麼是數組 171
10.1.1 聲明數組變量 171
10.1.2 創建數組實例 172
10.1.3 初始化數組變量 173
10.1.4 創建隱式類型的數組 173
10.1.5 訪問單獨的數組元素 174
10.1.6 遍曆數組 175
10.1.7 復製數組 176
10.1.8 使用多維數組 177
10.1.9 使用數組來玩牌 178
10.2 什麼是集閤類 184
10.2.1 ArrayList集閤類 185
10.2.2 Queue集閤類 187
10.2.3 Stack集閤類 188
10.2.4 Hashtable集閤類 189
10.2.5 SortedList集閤類 190
10.2.6 使用集閤初始化器 191
10.2.7 比較數組和集閤 192
10.2.8 使用集閤類來玩牌 192
第10章快速參考 195
第11章 理解參數數組 197
11.1 使用數組參數 199
11.1.1 聲明params數組 200
11.1.2 使用params object[] 201
11.1.3 使用params數組 203
11.2 比較參數數組和可選參數 205
第11章快速參考 207
第12章 使用繼承 207
12.1 什麼是繼承 207
12.2 使用繼承 208
12.2.1 調用基類構造器 209
12.2.2 類的賦值 210
12.2.3 聲明new方法 212
12.2.4 聲明virtual方法 213
12.2.5 聲明override方法 214
12.2.6 理解protected訪問 217
12.3 理解擴展方法 222
第12章快速參考 225
第13章 創建接口和定義抽象類 227
13.1 理解接口 227
13.1.1 定義接口 228
13.1.2 實現接口 228
13.1.3 通過接口來引用一個類 230
13.1.4 使用多個接口 230
13.1.5 顯式實現接口 230
13.1.6 接口的限製 232
13.1.7 定義和使用接口 233
13.2 抽象類 241
13.3 密封類 243
13.3.1 密封方法 243
13.3.2 實現並使用一個抽象類 243
第13章快速參考 248
第14章 使用垃圾迴收和資源管理 251
14.1 對象的生存期 251
14.1.1 編寫析構器 252
14.1.2 為什麼要使用垃圾迴收器 254
14.1.3 垃圾迴收器的工作機理 255
14.1.4 慎用析構器 255
14.2 資源管理 256
14.2.1 disposal方法 256
14.2.2 異常安全的disposal方法 257
14.2.3 using語句 257
14.2.4 從析構器中調用Dispose方法 259
14.3 實現異常安全的disposal 260
第14章快速參考 263
第III部分 創 建 組 件
第15章 實現屬性以訪問字段 267
15.1 使用方法來實現封裝 267
15.2 什麼是屬性 269
15.2.1 使用屬性 271
15.2.2 隻讀屬性 271
15.2.3 隻寫屬性 272
15.2.4 屬性的可訪問性 272
15.3 理解屬性的局限性 273
15.4 在接口中聲明屬性 275
15.5 生成自動屬性 277
15.6 使用屬性來初始化對象 279
第15章快速參考 283
第16章 使用索引器 285
16.1 什麼是索引器 285
16.1.1 沒有使用索引器的例子 285
16.1.2 使用索引器的同一個例子 287
16.1.3 理解索引器的accessor 289
16.1.4 對比索引器和數組 290
16.2 接口中的索引器 292
16.3 在Windows應用程序中使用索引器 293
第16章快速參考 297
第17章 中斷程序流程並處理事件 299
17.1 聲明和使用委托 299
17.1.1 自動化工廠的例子 300
17.1.2 不使用委托來實現工廠 300
17.1.3 使用委托來實現工廠 301
17.1.4 使用委托 303
17.2 lambda錶達式和委托 308
17.2.1 創建方法適配器 308
17.2.2 將lambda錶達式作為適配器使用 309
17.2.3 lambda錶達式的形式 309
17.3 啓用事件通知 311
17.3.1 聲明事件 311
17.3.2 訂閱事件 312
17.3.3 取消訂閱事件 313
17.3.4 引發事件 313
17.4 理解WPF用戶界麵事件 313
第17章快速參考 319
第18章 泛型概述 321
18.1 object存在的問題 321
18.2 泛型解決方案 323
18.2.1 對比泛型類與泛化類 325
18.2.2 泛型和約束 325
18.3 創建泛型類 325
18.3.1 二叉樹理論 325
18.3.2 使用泛型構造二叉樹類 328
18.4 創建泛型方法 337
18.5 可變性和泛型接口 340
18.5.1 協變接口 341
18.5.2 逆變接口 343
第18章快速參考 345
第19章 枚舉集閤 347
19.1 枚舉集閤中的元素 347
19.1.1 手動實現枚舉器 348
19.1.2 實現IEnumerable接口 352
19.2 使用迭代器來實現枚舉器 354
19.2.1 一個簡單的迭代器 354
19.2.2 使用迭代器為Tree(TItem) 類定義枚舉器 356
第19章快速參考 358
第20章 使用查詢錶達式來查詢內存中的數據 361
20.1 什麼是語言集成查詢 361
20.2 在C#應用程序中使用LINQ 362
20.2.1 選擇數據 363
20.2.2 篩選數據 366
20.2.3 排序、分組和聚閤數據 366
20.2.4 聯接數據 368
20.2.5 使用查詢操作符 370
20.2.6 查詢Tree(TItem)對象中的數據 372
20.2.7 LINQ和推遲求值 377
第20章快速參考 380
第21章 操作符重載 383
21.1 理解操作符 383
21.1.1 操作符的限製 384
21.1.2 重載的操作符 384
21.1.3 創建對稱操作符 385
21.2 理解復閤賦值 387
21.3 聲明遞增操作符和遞減操作符 388
21.4 比較結構和類中的操作符 389
21.5 定義操作符對 390
21.6 實現操作符 391
21.7 理解轉換操作符 397
21.7.1 提供內建轉換 397
21.7.2 實現用戶自定義的轉換操作符 398
21.7.3 再論創建對稱操作符 399
21.7.4 添加隱式轉換操作符 399
第21章快速參考 402
第IV部分 操縱Windows應用程序
第22章 Windows Presentation Foundation概述 405
22.1 創建WPF應用程序 405
22.2 在窗體上添加控件 418
22.2.1 使用WPF控件 418
22.2.2 動態更改屬性 425
22.3 處理WPF窗體中的事件 429
第22章快速參考 434
第23章 收集用戶輸入 437
23.1 菜單設計原則和樣式 437
23.2 菜單和菜單事件 438
23.2.1 創建菜單 438
23.2.2 處理菜單事件 443
23.3 快捷菜單 449
23.4 Windows通用對話框 453
23.5 增強WPF應用程序的響應能力 456
第23章快速參考 464
第24章 執行校驗 467
24.1 驗證數據 467
用戶輸入驗證策略 467
24.2 示例:訂票係統 468
24.2.1 使用數據綁定執行校驗 469
24.2.2 改變校驗時機 484
第24章快速參考 487
第V部分 管 理 數 據
第25章 查詢數據庫中的信息 491
25.1 使用ADO.NET查詢數據庫 491
25.1.1 Northwind數據庫 492
25.1.2 創建數據庫 492
25.1.3 使用ADO.NET查詢訂單信息 494
25.2 使用LINQ to SQL查詢數據庫 503
25.2.1 定義實體類 503
25.2.2 創建並運行LINQ to SQL查詢 505
25.2.3 推遲取迴和立即取迴 507
25.2.4 聯接錶和創建關係 507
25.2.5 再論推遲取迴和立即取迴 511
25.2.6 定義自定義的DataContxt類 512
25.2.7 用LINQ to SQL查詢訂單信息 513
第25章快速參考 517
第26章 使用實體框架和數據綁定顯示和編輯數據 519
26.1 通過實體框架進行數據綁定 520
26.2 通過數據綁定修改數據 534
26.2.1 更新現有數據 534
26.2.2 處理衝突的更新 535
26.2.3 添加和刪除數據 537
第26章快速參考 545
第VI部分 使用Visual Studio 2010構建專業解決方案
第27章 任務並行庫入門 549
27.1 為何使用並行處理來執行多任務處理 550
27.2 在桌麵應用程序中實現多任務處理 551
27.2.1 任務、綫程和綫程池 552
27.2.2 創建、運行和控製任務 553
27.2.3 使用Task類實現並行處理 557
27.2.4 使用Parallel類對任務進行抽象 564
27.2.5 什麼時候不使用Parallel類 568
27.2.6 從任務返迴值 571
27.3 任務和UI綫程一起使用 574
27.4 取消任務和處理異常 578
27.4.1 協作式取消的原理 578
27.4.2 使用AggregateException類處理任務異常 586
27.4.3 為Canceled和Faulted任務使用延續任務 589
第27章快速參考 590
第28章 執行並行數據訪問 593
28.1 用PLINQ並行進行聲明式 數據訪問 593
28.1.1 用PLINQ增強遍曆集閤時的性能 594
28.1.2 指定PLINQ查詢選項 598
28.1.3 取消PLINQ查詢 598
28.2 同步並發的命令式數據訪問 599
28.2.1 鎖定數據 602
28.2.2 TPL提供的同步基元 603
28.2.3 取消和同步基元 609
28.2.4 並發集閤類 609
28.2.5 使用並發集閤和鎖來實現綫程安全的數據訪問 611
第28章快速參考 620
第29章 創建和使用Web服務 623
29.1 Web服務的定義 623
29.2 Web服務架構 624
29.2.1 SOAP Web服務 625
29.2.2 REST Web服務 627
29.3 構建Web服務 628
29.3.1 創建ProductInformation SOAP Web服務 628
29.3.2 SOAP Web服務、客戶端 和代理 635
29.3.3 消費ProductInformation SOAP Web服務 636
29.3.4 創建ProductDetails REST Web服務 641
28.3.5 使用ProductDetails REST Web服務 647
第29章快速參考 651
· · · · · · (
收起)