出版信息
Visual C#從入門到精通(第8版)
作者:John Sharp著 周靖譯
定價:129元
印次:1-1
出版日期:2016.06.01
印刷日期:2016.05.30
內容簡介
C#作為微軟的旗艦程式語言,深受程式戀膠頸詢員喜愛,是編寫高效應用程式的首選語言。Visual C# 2015提供了大量新功能,本書圍繞語言的基礎知識和這些新功能全面介紹了如何利用Visual Studio 2015和.NET Framework 4.6編寫C#應用程式。本書沿襲深受讀者歡迎的Step by Step風格,通過合理的練習引導讀者逐步構建在Windows 10上運行的應用程式、訪問SQL Server資料庫以及開發多執行緒套用等。全書共27章,結構清晰,敘述清楚。所有練習均在Visual Studio 2015簡體中文版上進行過全面演練。無論厚習寒是剛開始接觸面向對象編程的新手,還是打算遷移到C#的C、C++或
Java程式設計師,都可以從本書汲取到新的知識。迅速掌握C#編程技術。
作者
John Sharp 資深技術作家,Content Master(英國CM集團的分支機構)的首席技術專家。John擁有倫民鑽試戀敦帝國理工學院的計算機
榮譽學士學位。過去27年,他一擔紙直致力於軟體開發和培訓教程與課程的寫作。John擁有豐富的技術資歷嫌詢懂,精通資料庫系統、UNIX、C、C++和C#套用開發。他還開發過Java和JavaScript套用,用Windows Azure設計企業級方案。
譯者
周靖 翻譯風格嚴謹、準確、樸實、流暢,深受讀者歡迎。代表譯著有《Visual C#從入門到精通》系列版本、《C#本質論》、《CLR via C#》系列版本和Walter Savitch教授的經典教材《C++程式設計》系列版本。
目錄
目錄
第I部分VisualC#和VisualStudio2015概述
第1章歡迎進入C#編程世界 3
1.1開始在VisualStudio2015環境中
編程 3
1.2寫第一個程式 7
1.3使用命名空間 11
1.4創建圖形應用程式 14
1.4.1探索通用Windows平台套用
程式 20
1.4.2向圖形應用程式添加代碼 23
小結 25
第1章快速參考 25
第2章使用變數、操作符和表達式 27
2.1理解語句 27
2.2使用標識符 27
2.3使用變數 29
2.3.1命名變數 29
2.3.2聲明變數 29
2.4使用基元數據類型 30
2.4.1未賦值的局部變數 31
2.4.2顯示基元數據類型的值 31
2.5使用算術操作符 36
2.5.1操作符和類型 36
2.5.2深入了解算術操作符 38
2.5.3控制優先權 42
2.5.4使用結合性對表達式進行
求值 43
2.5.5結企趨危合性和賦值操作符 43
2.6變數遞增和遞減 44
2.7聲明隱式類型的局部變數 45
小結 46
第2章快速參考 47
第3章方法和作用域 48
3.1創建方法 48
3.1.1聲明方法 48
3.1.2從方法返回數據 49
3.1.3使用表達式主體方法 50
3.1.4調用方法 51
3.2使用作用域 53
3.2.1定義局部作用域 54
3.2.2定義類作用域 54
3.2.3重載方法 55
3.3編寫方法 56
3.4使用可選參數和具名參數 63
3.4.1定義可選參數 64
3.4.2傳遞具名參數 64
3.4.3消除可選參數和具名參數的
歧義 65
小結 69
第3章快速參考 70
第4章使用判斷語句 72
4.1聲明布爾變數 72
4.2.1理解相等和關係操作符 73
4.2.2理解條件邏輯操作符 73
4.2.3短路求值 74
4.2.4操作符的優先權和結合性
總結 74
4.3使用if語句做出判斷 75
4.3.1理解if語句的語法 75
4.3.2使用代碼塊分組語句 76
4.3.3嵌套if語句 77
4.4使用switch語句 82
4.4.1理解switch語句的語法殃想敬 83
4.4.2遵守switch語句的規則 84
小結 87
第4章快速參考 87
第5章使用複合賦值和循環語句 89
5.1使用複合賦值操作符 89
5.2使用while語句 90
5.3編寫for語句 94
5.4編寫do語句 96
小結 103
第5章快速參考 104
第6章管理錯誤和異常 105
6.1處理錯誤 105
6.2嘗試執行代碼和捕捉異常 105
6.2.1未處理的異常 107
6.2.2使用多個catch處理程式 108
6.2.3捕捉多個異常 108
6.2.4傳播異常 113
6.3使用checked和unchecked整數
運算 115
6.3.1編寫checked語句 115
6.3.2編寫checked表達式 116
6.4拋出異常 118
6.5使用finally塊 122
小結 123
第6章快速參考 124
第II部分理解C#對象模型
第7章創建並管理類和對象 127
7.1理解分類 127
7.2封裝的目的 127
7.3定義並使用類 128
7.4控制可訪問性 129
7.4.1使用構造器 130
7.4.2重載構造器 131
7.5理解靜態方法和數據 138
7.5.1創建共享欄位 139
7.5.2使用const關鍵字創建靜態
欄位 140
7.5.3理解靜態類 140
7.5.4靜態using語句 140
7.5.5匿名類 143
小結 144
第7章快速參考 144
第8章理解值和引用 146
8.1複製值類型的變數和類 146
8.2理解null值和可空類型 151
8.2.1使用可空類型 153
8.2.2理解可空類型的屬性 154
8.3使用ref和out參數 154
8.3.1創建ref參數 155
8.3.2創建out參數 156
8.5System.Object類 160
8.6裝箱 160
8.7拆箱 161
8.8數據的安全轉型 162
8.8.1is操作符 163
8.8.2as操作符 163
小結 165
第8章快速參考 165
第9章使用枚舉和結構創建值類型 167
9.1使用枚舉 167
9.1.1聲明枚舉 167
9.1.2使用枚舉 167
9.1.3選擇枚舉字面值 168
9.1.4選擇枚舉的基礎類型 169
9.2使用結構 171
9.2.1聲明結構 173
9.2.2理解結構和類的區別 174
9.2.3聲明結構變數 175
9.2.4理解結構的初始化 175
9.2.5複製結構變數 179
小結 183
第9章快速參考 183
第10章使用數組 185
10.1聲明和創建數組 185
10.1.1聲明數組變數 185
10.1.2創建數組實例 186
10.1.3填充和使用數組 186
10.1.4創建隱式類型的數組 187
10.1.5訪問單獨的數組元素 188
10.1.6遍歷數組 189
10.1.7數組作為方法參數和返回值
傳遞 190
10.1.8複製數組 191
10.1.9使用多維數組 192
10.1.10創建交錯數組 193
小結 202
第10章快速參考 202
第11章理解參數數組 204
11.1回顧重載 204
11.2使用數組參數 205
11.2.1聲明參數數組 206
11.2.2使用paramsobject[] 208
11.2.3使用參數數組 209
11.3比較參數數組和可選參數 211
小結 213
第11章快速參考 214
第12章使用繼承 215
12.1什麼是繼承 215
12.2使用繼承 216
12.2.1複習System.Object類 217
12.2.2調用基類構造器 218
12.2.3類的賦值 219
12.2.4聲明新方法 220
12.2.5聲明虛方法 221
12.2.6聲明重寫方法 222
12.2.7理解受保護的訪問 225
12.3理解擴展方法 230
小結 234
第12章快速參考 234
第13章創建接口和定義抽象類 236
13.1理解接口 236
13.1.1定義接口 237
13.1.2實現接口 237
13.1.3通過接口來引用類 239
13.1.4使用多個接口 239
13.1.5顯式實現接口 240
13.1.6接口的限制 242
13.1.7定義和使用接口 242
13.2抽象類 250
13.3密封類 252
13.3.1密封方法 252
13.3.2實現並使用抽象類 253
小結 258
第13章快速參考 259
第14章使用垃圾回收和資源管理 260
14.1對象的生存期 260
14.1.1編寫析構器 261
14.1.2為什麼要使用垃圾回收器 262
14.1.3垃圾回收器的工作原理 264
14.1.4慎用析構器 264
14.2資源管理 265
14.2.1資源清理方法 265
14.2.2異常安全的資源清理 266
14.2.3using語句和IDisposable
接口 266
14.2.4從析構器中調用Dispose
方法 268
14.3實現異常安全的資源清理 270
小結 276
第14章快速參考 277
第III部分用C#定義可擴展類型
第15章實現屬性以訪問欄位 281
15.1使用方法實現封裝 281
15.2什麼是屬性 283
15.2.1使用屬性 285
15.2.2隻讀屬性 285
15.2.3隻寫屬性 286
15.2.4屬性的可訪問性 286
15.3理解屬性的局限性 287
15.4在接口中聲明屬性 288
15.5生成自動屬性 294
15.6用屬性初始化對象 296
小結 299
第15章快速參考 300
第16章使用索引器 302
16.1什麼是索引器 302
16.1.1不用索引器的例子 302
16.1.2同一個例子改用索引器 304
16.1.3理解索引器的訪問器 306
16.1.4對比索引器和數組 306
16.2接口中的索引器 308
16.3在Windows應用程式中使用
索引器 309
小結 315
第16章快速參考 315
第17章泛型概述 317
17.1object的問題 317
17.2泛型解決方案 320
17.2.1對比泛型類和常規類 322
17.2.2泛型和約束 323
17.3創建泛型類 323
17.3.1二叉樹理論 323
17.3.2使用泛型構造二叉樹類 326
17.4創建泛型方法 334
17.5可變性和泛型接口 337
17.5.1協變接口 338
17.5.2逆變接口 340
小結 342
第17章快速參考 342
第18章使用集合 344
18.1什麼是集合類 344
18.1.1List<T>集合類 345
18.1.2LinkedList<T>集合類 347
18.1.3Queue<T>集合類 349
18.1.4Stack<T>集合類 350
18.1.5Dictionary<TKey,TValue>
集合類 351
18.1.6SortedList<TKey,TValue>
集合類 352
18.1.7HashSet<T>集合類 353
18.2使用集合初始化器 355
18.3Find方法、謂詞和Lambda
表達式 356
18.4比較數組和集合 359
小結 363
第18章快速參考 363
第19章枚舉集合 366
19.1枚舉集合中的元素 366
19.1.1手動實現枚舉器 367
19.1.2實現IEnumerable接口 371
19.2用疊代器實現枚舉器 373
19.2.1一個簡單的疊代器 373
19.2.2使用疊代器為Tree<TItem>類
定義枚舉器 375
小結 377
第19章快速參考 378
第20章分離應用程式邏輯並處理
事件 379
20.1理解委託 379
20.1.1.NETFramework類庫的委託
例子 380
20.1.2自動化工廠的例子 382
20.1.3不用委託實現工廠控制
系統 382
20.1.4用委託實現工廠控制
系統 383
20.1.5聲明和使用委託 385
20.3啟用事件通知 393
20.3.1聲明事件 394
20.3.2訂閱事件 395
20.3.3取消訂閱事件 395
20.3.4引發事件 395
20.4理解用戶界面事件 396
小結 403
第20章快速參考 403
第21章使用查詢表達式來查詢記憶體
中的數據 406
21.1什麼是LINQ 406
21.2在C#應用程式中使用LINQ 407
21.2.1選擇數據 408
21.2.2篩選數據 411
21.2.3排序、分組和聚合數據 411
21.2.4聯接數據 413
21.2.5使用查詢操作符 415
21.2.6查詢Tree<TItem>對象中的
數據 417
21.2.7LINQ和推遲求值 422
小結 425
第21章快速參考 425
22.1理解操作符 428
22.1.1操作符的限制 428
22.1.2重載的操作符 429
22.1.3創建對稱操作符 430
22.2理解複合賦值 432
22.3聲明遞增和遞減操作符 433
22.4比較結構和類中的操作符 434
22.5定義成對的操作符 434
22.6實現操作符 435
22.7理解轉換操作符 441
22.7.1提供內建轉換 441
22.7.2實現用戶自定義的轉換
操作符 442
22.7.3再論創建對稱操作符 443
22.7.4添加隱式轉換操作符 444
小結 446
第22章快速參考 446
第IV部分用C#構建UWP套用
第23章使用任務提高吞吐量 451
23.1使用並行處理執行多任務處理 451
23.2用.NETFramework實現多任務
處理 452
23.2.1任務、執行緒和執行緒池 453
23.2.2創建、運行和控制任務 454
23.2.3使用Task類實現並行處理 457
23.2.4使用Parallel類對任務進行
抽象 467
23.2.5什麼時候不要使用
Parallel類 471
23.3取消任務和處理異常 473
23.3.1協作式取消的原理 473
23.3.2為Canceled和Faulted任務
使用延續 485
小結 485
第23章快速參考 486
第24章通過異步操作提高回響速度 489
24.1實現異步方法 490
24.1.1定義異步方法:問題 490
24.1.2定義異步方法:解決方案 492
24.1.3定義返回值的異步方法 497
24.1.4異步方法注意事項 498
24.1.5異步方法和Windows
RuntimeAPI 499
24.2用PLINQ進行並行數據訪問 502
24.2.1用PLINQ增強遍歷集合時的
性能 502
24.2.2取消PLINQ查詢 506
24.3同步對數據的並發訪問 506
24.3.1鎖定數據 509
24.3.2用於協調任務的同步基元 510
24.3.3取消同步 512
24.3.4並發集合類 512
24.3.5使用並發集合和鎖實現執行緒
安全的數據訪問 513
小結 522
第24章快速參考 522
第25章實現UWP套用的用戶界面 525
25.1UWP套用的特點 526
25.2使用空白模板構建UWP套用 528
25.2.1實現可伸縮的用戶界面 530
25.2.2向用戶界面套用樣式 556
小結 565
第25章快速參考 566
第26章在UWP套用中顯示和搜尋
數據 567
26.1實現Model-View-ViewModel
模式 567
26.1.1通過數據綁定顯示數據 568
26.1.2通過數據綁定修改數據 573
26.1.3為ComboBox控制項使用數據
綁定 577
26.1.4創建ViewModel 579
26.1.5向ViewModel添加命令 583
26.2用Cortana搜尋數據 592
小結 606
第26章快速參考 606
第27章在UWP套用中訪問遠程
資料庫 608
27.1從資料庫獲取數據 608
27.1.1創建實體模型 613
27.1.2創建和使用RESTWeb
服務 620
和刪除數據 634
小結 651
第27章快速參考 651
譯者後記 653
7.4.2重載構造器 131
7.5理解靜態方法和數據 138
7.5.1創建共享欄位 139
7.5.2使用const關鍵字創建靜態
欄位 140
7.5.3理解靜態類 140
7.5.4靜態using語句 140
7.5.5匿名類 143
小結 144
第7章快速參考 144
第8章理解值和引用 146
8.1複製值類型的變數和類 146
8.2理解null值和可空類型 151
8.2.1使用可空類型 153
8.2.2理解可空類型的屬性 154
8.3使用ref和out參數 154
8.3.1創建ref參數 155
8.3.2創建out參數 156
8.5System.Object類 160
8.6裝箱 160
8.7拆箱 161
8.8數據的安全轉型 162
8.8.1is操作符 163
8.8.2as操作符 163
小結 165
第8章快速參考 165
第9章使用枚舉和結構創建值類型 167
9.1使用枚舉 167
9.1.1聲明枚舉 167
9.1.2使用枚舉 167
9.1.3選擇枚舉字面值 168
9.1.4選擇枚舉的基礎類型 169
9.2使用結構 171
9.2.1聲明結構 173
9.2.2理解結構和類的區別 174
9.2.3聲明結構變數 175
9.2.4理解結構的初始化 175
9.2.5複製結構變數 179
小結 183
第9章快速參考 183
第10章使用數組 185
10.1聲明和創建數組 185
10.1.1聲明數組變數 185
10.1.2創建數組實例 186
10.1.3填充和使用數組 186
10.1.4創建隱式類型的數組 187
10.1.5訪問單獨的數組元素 188
10.1.6遍歷數組 189
10.1.7數組作為方法參數和返回值
傳遞 190
10.1.8複製數組 191
10.1.9使用多維數組 192
10.1.10創建交錯數組 193
小結 202
第10章快速參考 202
第11章理解參數數組 204
11.1回顧重載 204
11.2使用數組參數 205
11.2.1聲明參數數組 206
11.2.2使用paramsobject[] 208
11.2.3使用參數數組 209
11.3比較參數數組和可選參數 211
小結 213
第11章快速參考 214
第12章使用繼承 215
12.1什麼是繼承 215
12.2使用繼承 216
12.2.1複習System.Object類 217
12.2.2調用基類構造器 218
12.2.3類的賦值 219
12.2.4聲明新方法 220
12.2.5聲明虛方法 221
12.2.6聲明重寫方法 222
12.2.7理解受保護的訪問 225
12.3理解擴展方法 230
小結 234
第12章快速參考 234
第13章創建接口和定義抽象類 236
13.1理解接口 236
13.1.1定義接口 237
13.1.2實現接口 237
13.1.3通過接口來引用類 239
13.1.4使用多個接口 239
13.1.5顯式實現接口 240
13.1.6接口的限制 242
13.1.7定義和使用接口 242
13.2抽象類 250
13.3密封類 252
13.3.1密封方法 252
13.3.2實現並使用抽象類 253
小結 258
第13章快速參考 259
第14章使用垃圾回收和資源管理 260
14.1對象的生存期 260
14.1.1編寫析構器 261
14.1.2為什麼要使用垃圾回收器 262
14.1.3垃圾回收器的工作原理 264
14.1.4慎用析構器 264
14.2資源管理 265
14.2.1資源清理方法 265
14.2.2異常安全的資源清理 266
14.2.3using語句和IDisposable
接口 266
14.2.4從析構器中調用Dispose
方法 268
14.3實現異常安全的資源清理 270
小結 276
第14章快速參考 277
第III部分用C#定義可擴展類型
第15章實現屬性以訪問欄位 281
15.1使用方法實現封裝 281
15.2什麼是屬性 283
15.2.1使用屬性 285
15.2.2隻讀屬性 285
15.2.3隻寫屬性 286
15.2.4屬性的可訪問性 286
15.3理解屬性的局限性 287
15.4在接口中聲明屬性 288
15.5生成自動屬性 294
15.6用屬性初始化對象 296
小結 299
第15章快速參考 300
第16章使用索引器 302
16.1什麼是索引器 302
16.1.1不用索引器的例子 302
16.1.2同一個例子改用索引器 304
16.1.3理解索引器的訪問器 306
16.1.4對比索引器和數組 306
16.2接口中的索引器 308
16.3在Windows應用程式中使用
索引器 309
小結 315
第16章快速參考 315
第17章泛型概述 317
17.1object的問題 317
17.2泛型解決方案 320
17.2.1對比泛型類和常規類 322
17.2.2泛型和約束 323
17.3創建泛型類 323
17.3.1二叉樹理論 323
17.3.2使用泛型構造二叉樹類 326
17.4創建泛型方法 334
17.5可變性和泛型接口 337
17.5.1協變接口 338
17.5.2逆變接口 340
小結 342
第17章快速參考 342
第18章使用集合 344
18.1什麼是集合類 344
18.1.1List<T>集合類 345
18.1.2LinkedList<T>集合類 347
18.1.3Queue<T>集合類 349
18.1.4Stack<T>集合類 350
18.1.5Dictionary<TKey,TValue>
集合類 351
18.1.6SortedList<TKey,TValue>
集合類 352
18.1.7HashSet<T>集合類 353
18.2使用集合初始化器 355
18.3Find方法、謂詞和Lambda
表達式 356
18.4比較數組和集合 359
小結 363
第18章快速參考 363
第19章枚舉集合 366
19.1枚舉集合中的元素 366
19.1.1手動實現枚舉器 367
19.1.2實現IEnumerable接口 371
19.2用疊代器實現枚舉器 373
19.2.1一個簡單的疊代器 373
19.2.2使用疊代器為Tree<TItem>類
定義枚舉器 375
小結 377
第19章快速參考 378
第20章分離應用程式邏輯並處理
事件 379
20.1理解委託 379
20.1.1.NETFramework類庫的委託
例子 380
20.1.2自動化工廠的例子 382
20.1.3不用委託實現工廠控制
系統 382
20.1.4用委託實現工廠控制
系統 383
20.1.5聲明和使用委託 385
20.3啟用事件通知 393
20.3.1聲明事件 394
20.3.2訂閱事件 395
20.3.3取消訂閱事件 395
20.3.4引發事件 395
20.4理解用戶界面事件 396
小結 403
第20章快速參考 403
第21章使用查詢表達式來查詢記憶體
中的數據 406
21.1什麼是LINQ 406
21.2在C#應用程式中使用LINQ 407
21.2.1選擇數據 408
21.2.2篩選數據 411
21.2.3排序、分組和聚合數據 411
21.2.4聯接數據 413
21.2.5使用查詢操作符 415
21.2.6查詢Tree<TItem>對象中的
數據 417
21.2.7LINQ和推遲求值 422
小結 425
第21章快速參考 425
22.1理解操作符 428
22.1.1操作符的限制 428
22.1.2重載的操作符 429
22.1.3創建對稱操作符 430
22.2理解複合賦值 432
22.3聲明遞增和遞減操作符 433
22.4比較結構和類中的操作符 434
22.5定義成對的操作符 434
22.6實現操作符 435
22.7理解轉換操作符 441
22.7.1提供內建轉換 441
22.7.2實現用戶自定義的轉換
操作符 442
22.7.3再論創建對稱操作符 443
22.7.4添加隱式轉換操作符 444
小結 446
第22章快速參考 446
第IV部分用C#構建UWP套用
第23章使用任務提高吞吐量 451
23.1使用並行處理執行多任務處理 451
23.2用.NETFramework實現多任務
處理 452
23.2.1任務、執行緒和執行緒池 453
23.2.2創建、運行和控制任務 454
23.2.3使用Task類實現並行處理 457
23.2.4使用Parallel類對任務進行
抽象 467
23.2.5什麼時候不要使用
Parallel類 471
23.3取消任務和處理異常 473
23.3.1協作式取消的原理 473
23.3.2為Canceled和Faulted任務
使用延續 485
小結 485
第23章快速參考 486
第24章通過異步操作提高回響速度 489
24.1實現異步方法 490
24.1.1定義異步方法:問題 490
24.1.2定義異步方法:解決方案 492
24.1.3定義返回值的異步方法 497
24.1.4異步方法注意事項 498
24.1.5異步方法和Windows
RuntimeAPI 499
24.2用PLINQ進行並行數據訪問 502
24.2.1用PLINQ增強遍歷集合時的
性能 502
24.2.2取消PLINQ查詢 506
24.3同步對數據的並發訪問 506
24.3.1鎖定數據 509
24.3.2用於協調任務的同步基元 510
24.3.3取消同步 512
24.3.4並發集合類 512
24.3.5使用並發集合和鎖實現執行緒
安全的數據訪問 513
小結 522
第24章快速參考 522
第25章實現UWP套用的用戶界面 525
25.1UWP套用的特點 526
25.2使用空白模板構建UWP套用 528
25.2.1實現可伸縮的用戶界面 530
25.2.2向用戶界面套用樣式 556
小結 565
第25章快速參考 566
第26章在UWP套用中顯示和搜尋
數據 567
26.1實現Model-View-ViewModel
模式 567
26.1.1通過數據綁定顯示數據 568
26.1.2通過數據綁定修改數據 573
26.1.3為ComboBox控制項使用數據
綁定 577
26.1.4創建ViewModel 579
26.1.5向ViewModel添加命令 583
26.2用Cortana搜尋數據 592
小結 606
第26章快速參考 606
第27章在UWP套用中訪問遠程
資料庫 608
27.1從資料庫獲取數據 608
27.1.1創建實體模型 613
27.1.2創建和使用RESTWeb
服務 620
和刪除數據 634
小結 651
第27章快速參考 651
譯者後記 653