書籍簡介:
C#作為微軟的旗艦編程語言,深受程序員喜愛,是編寫高效應(yīng)用程序的*語言。Visual C# 2017提供了大量新功能,《Visual C#從入門到精通(第9版)》圍繞語言的基礎(chǔ)知識和這些新功能全面介紹了如何利用Visual Studio 2017和.NET Framework 4.6.1編寫C#應(yīng)用程序。《Visual C#從入門到精通(第9版)》沿襲深受讀者歡迎的Step by Step風(fēng)格,通過合理的練習(xí)引導(dǎo)讀者逐步構(gòu)建在Windows 10上運行的應(yīng)用程序、訪問SQL Server數(shù)據(jù)庫以及開發(fā)多線程應(yīng)用等。 《Visual C#從入門到精通(第9版)》共27章,結(jié)構(gòu)清晰,敘述清楚。所有練習(xí)均在Visual Studio 2017簡體中文版上進行過全面演練。無論是剛開始接觸面向?qū)ο缶幊痰男率郑€是打算遷移到C#的C、C 或Java程序員,都可以從本書汲取到新的知識。迅速掌握C#編程技術(shù)。
作者簡介:
約翰 . 夏普(John Sharp)
微軟MVP,資深技術(shù)作家,Content Master(英國CM集團的分支機構(gòu))的首席技術(shù)專家。John擁有倫敦帝國理工學(xué)院的計算機榮譽學(xué)士學(xué)位。過去27年,他一直致力于軟件開發(fā)和培訓(xùn)教程與課程的寫作。John擁有豐富的技術(shù)資歷,精通數(shù)據(jù)庫系統(tǒng)、UNIX、C、C 和C#應(yīng)用開發(fā)。他還開發(fā)過Java和JavaScript應(yīng)用,用Windows Azure設(shè)計企業(yè)級方案。
譯者簡介
周 靖
微軟MVP,翻譯風(fēng)格嚴謹、準確、樸實、流暢,深受讀者歡迎。代表譯著有《Visual C#從入門到精通》系列版本、《C#本質(zhì)論》、《CLR via C#》系列版本和Walter Savitch教授的經(jīng)典教材《C 程序設(shè)計》系列版本。
出版日期:
2018年12月
章節(jié)目錄:
第I部分 Visual C#和Visual Studio 2017概述
第1章 歡迎進入C#編程世界 3
1.1 開始在Visual Studio 2017環(huán)境中編程 3
1.2 寫第一個程序 6
1.3 使用命名空間 11
1.4 創(chuàng)建圖形應(yīng)用程序 13
1.4.1 探索通用Windows平臺應(yīng)用程序 20
1.4.2 向圖形應(yīng)用程序添加代碼 23
1.4.3 其他類型的圖形應(yīng)用程序 25
小結(jié) 26
第1章快速參考 26
第2章 使用變量、操作符和表達式 27
2.1 理解語句 27
2.2 使用標識符 27
認識關(guān)鍵字 28
2.3 使用變量 29
2.3.1 命名變量 29
2.3.2 聲明變量 29
2.3.3 指定數(shù)值 30
2.4 使用基元數(shù)據(jù)類型 31
2.4.1 未賦值的局部變量 31
2.4.2 顯示基元數(shù)據(jù)類型的值 32
2.5 使用算術(shù)操作符 37
2.5.1 操作符和類型 37
2.5.2 深入了解算術(shù)操作符 38
2.5.3 控制優(yōu)先級 43
2.5.4 使用結(jié)合性對表達式進行求值 43
2.5.5 結(jié)合性和賦值操作符 44
2.6 變量遞增和遞減 45
2.7 聲明隱式類型的局部變量 46
小結(jié) 47
第2章快速參考 47
第3章 方法和作用域 49
3.1 創(chuàng)建方法 49
3.1.1 聲明方法 49
3.1.2 從方法返回數(shù)據(jù) 50
3.1.3 使用表達式主體方法 51
3.1.4 調(diào)用方法 52
3.1.5 從方法返回多個值 54
3.2 使用作用域 57
3.2.1 定義局部作用域 57
3.2.2 定義類作用域 58
3.2.3 重載方法 58
3.3 編寫方法 59
3.3.1 重構(gòu)代碼 63
3.3.2 嵌套方法 66
3.4 使用可選參數(shù)和具名參數(shù) 69
3.4.1 定義可選參數(shù) 70
3.4.2 傳遞具名參數(shù) 70
3.4.3 消除可選參數(shù)和具名參數(shù)的歧義 71
小結(jié) 75
第3章快速參考 76
第4章 使用判斷語句 78
4.1 聲明布爾變量 78
4.2 使用布爾操作符 78
4.2.1 理解相等和關(guān)系操作符 79
4.2.2 理解條件邏輯操作符 79
4.2.3 短路求值 80
4.2.4 操作符的優(yōu)先級和結(jié)合性總結(jié) 80
4.3 使用if語句做出判斷 81
4.3.1 理解if語句的語法 81
4.3.2 使用代碼塊分組語句 82
4.3.3 嵌套if語句 83
4.4 使用switch語句 88
4.4.1 理解switch語句的語法 89
4.4.2 遵守switch語句的規(guī)則 90
小結(jié) 93
第4章快速參考 94
第5章 使用復(fù)合賦值和循環(huán)語句 95
5.1 使用復(fù)合賦值操作符 95
5.2 編寫while語句 96
5.3 編寫for語句 100
5.4 編寫do語句 102
小結(jié) 109
第5章快速參考 109
第6章 管理錯誤和異常 111
6.1 處理錯誤 111
6.2 嘗試執(zhí)行代碼和捕捉異常 111
6.2.1 未處理的異常 113
6.2.2 使用多個catch處理程序 114
6.2.3 捕捉多個異常 114
6.2.4 篩選異常 115
6.2.4 傳播異常 119
6.3 使用checked和unchecked整數(shù)運算 121
6.3.1 編寫checked語句 121
6.3.2 編寫checked表達式 122
6.4 拋出異常 124
6.5 使用finally塊 129
小結(jié) 130
第6章快速參考 131
第II部分 理解C#對象模型
第7章 創(chuàng)建并管理類和對象 135
7.1 理解分類 135
7.2 封裝的目的 135
7.3 定義并使用類 136
7.4 控制可訪問性 137
7.4.1 使用構(gòu)造器 138
7.4.2 重載構(gòu)造器 139
7.4.3 解構(gòu)對象 146
7.5 理解靜態(tài)方法和數(shù)據(jù) 147
7.5.1 創(chuàng)建共享字段 148
7.5.2 使用const關(guān)鍵字創(chuàng)建靜態(tài)字段 149
7.5.3 理解靜態(tài)類 149
7.5.4 靜態(tài)using語句 149
7.5.5 匿名類 152
小結(jié) 153
第7章快速參考 153
第8章 理解值和引用 155
8.1 復(fù)制值類型的變量和類 155
8.2 理解null值和可空類型 160
8.2.1 空條件操作符 161
8.2.2 使用可空類型 162
8.2.3 理解可空類型的屬性 163
8.3 使用ref和out參數(shù) 163
8.3.1 創(chuàng)建ref參數(shù) 164
8.3.2 創(chuàng)建out參數(shù) 165
8.4 計算機內(nèi)存的組織方式 167
8.5 System.Object類 169
8.6 裝箱 169
8.7 拆箱 170
8.8 數(shù)據(jù)的安全轉(zhuǎn)型 171
8.8.1 is操作符 171
8.8.2 as操作符 172
8.8.3 復(fù)習(xí)switch語句 172
小結(jié) 175
第8章快速參考 175
第9章 使用枚舉和結(jié)構(gòu)創(chuàng)建值類型 177
9.1 使用枚舉 177
9.1.1 聲明枚舉 177
9.1.2 使用枚舉 177
9.1.3 選擇枚舉字面值 178
9.1.4 選擇枚舉的基礎(chǔ)類型 179
9.2 使用結(jié)構(gòu) 181
9.2.1 聲明結(jié)構(gòu) 182
9.2.2 理解結(jié)構(gòu)和類的區(qū)別 183
9.2.3 聲明結(jié)構(gòu)變量 185
9.2.4 理解結(jié)構(gòu)的初始化 185
9.2.5 復(fù)制結(jié)構(gòu)變量 189
小結(jié) 193
第9章快速參考 193
第10章 使用數(shù)組 195
10.1 聲明和創(chuàng)建數(shù)組 195
10.1.1 聲明數(shù)組變量 195
10.1.2 創(chuàng)建數(shù)組實例 196
10.1.3 填充和使用數(shù)組 196
10.1.4 創(chuàng)建隱式類型的數(shù)組 197
10.1.5 訪問單獨的數(shù)組元素 198
10.1.6 遍歷數(shù)組 199
10.1.7 數(shù)組作為方法參數(shù)和返回值傳遞 200
10.1.8 復(fù)制數(shù)組 201
10.1.9 使用多維數(shù)組 202
10.1.10 創(chuàng)建交錯數(shù)組 203
10.1.11 訪問包含值類型的數(shù)組 212
小結(jié) 215
第10章快速參考 215
第11章 理解參數(shù)數(shù)組 217
11.1 回顧重載 217
11.2 使用數(shù)組參數(shù) 218
11.2.1 聲明參數(shù)數(shù)組 219
11.2.2 使用params object[] 220
11.2.3 使用參數(shù)數(shù)組 221
11.3 比較參數(shù)數(shù)組和可選參數(shù) 224
小結(jié) 226
第11章快速參考 227
第12章 使用繼承 228
12.1 什么是繼承 228
12.2 使用繼承 229
12.2.1 復(fù)習(xí)System.Object類 230
12.2.2 調(diào)用基類構(gòu)造器 231
12.2.3 類的賦值 232
12.2.4 聲明新方法 233
12.2.5 聲明虛方法 234
12.2.6 聲明重寫方法 235
12.2.7 理解受保護的訪問 238
12.3 創(chuàng)建擴展方法 243
小結(jié) 247
第12章快速參考 247
第13章 創(chuàng)建接口和定義抽象類 249
13.1 理解接口 249
13.1.1 定義接口 250
13.1.2 實現(xiàn)接口 250
13.1.3 通過接口引用類 252
13.1.4 使用多個接口 252
13.1.5 顯式實現(xiàn)接口 253
13.1.6 接口的限制 254
13.1.7 定義和使用接口 255
13.2 抽象類 263
13.3 密封類 265
13.3.1 密封方法 265
13.3.2 實現(xiàn)并使用抽象類 266
小結(jié) 271
第13章快速參考 272
第14章 使用垃圾回收和資源管理 273
14.1 對象生存期 273
14.1.1 編寫析構(gòu)器 274
14.1.2 為什么要使用垃圾回收器 275
14.1.3 垃圾回收器的工作原理 277
14.1.4 慎用析構(gòu)器 277
14.2 資源管理 278
14.2.1 資源清理方法 278
14.2.2 異常安全的資源清理 279
14.2.3 using語句和IDisposable 接口 279
14.2.4 從析構(gòu)器中調(diào)用Dispose 方法 281
14.3 實現(xiàn)異常安全的資源清理 283
小結(jié) 289
第14章快速參考 290
第III部分 用C#定義可擴展類型
第15章 實現(xiàn)屬性以訪問字段 295
15.1 使用方法實現(xiàn)封裝 295
15.2 什么是屬性 297
15.2.1 使用屬性 299
15.2.2 只讀屬性 300
15.2.3 只寫屬性 300
15.2.4 屬性的可訪問性 301
15.3 理解屬性的局限性 301
15.4 在接口中聲明屬性 303
15.5 生成自動屬性 308
15.6 用屬性初始化對象 310
小結(jié) 314
第15章快速參考 314
第16章 處理二進制數(shù)據(jù)和使用索引器 317
16.1 什么是索引器 317
16.1.1 存儲二進制值 317
16.1.2 顯示二進制值 318
16.1.3 操縱二進制值 318
16.1.4 用索引器解決相同問題 320
16.1.5 理解索引器的訪問器 322
16.1.6 對比索引器和數(shù)組 322
16.2 接口中的索引器 324
16.3 在Windows應(yīng)用程序中使用索引器 325
小結(jié) 331
第16章快速參考 331
第17章 泛型概述 333
17.1 object的問題 333
17.2 泛型解決方案 336
17.2.1 對比泛型類和常規(guī)類 338
17.2.2 泛型和約束 339
17.3 創(chuàng)建泛型類 339
17.3.1 二叉樹理論 339
17.3.2 使用泛型構(gòu)造二叉樹類 342
17.4 創(chuàng)建泛型方法 350
17.5 可變性和泛型接口 353
17.5.1 協(xié)變接口 354
17.5.2 逆變接口 356
小結(jié) 357
第17章快速參考 358
第18章 使用集合 360
18.1 什么是集合類 360
18.1.1 List集合類 361
18.1.2 LinkedList集合類 363
18.1.3 Queue集合類 365
18.1.4 Stack集合類 366
18.1.5 Dictionary 集合類 367
18.1.6 SortedList 集合類 368
18.1.7 HashSet集合類 369
18.2 使用集合初始化器 371
18.3 Find方法、謂詞和Lambda表達式 372
18.4 比較數(shù)組和集合 375
小結(jié) 379
第18章快速參考 379
第19章 枚舉集合 381
19.1 枚舉集合中的元素 381
19.1.1 手動實現(xiàn)枚舉器 382
19.1.2 實現(xiàn)IEnumerable接口 386
19.2 用迭代器實現(xiàn)枚舉器 388
19.2.1 一個簡單的迭代器 388
19.2.2 使用迭代器為Tree 類定義枚舉器 390
小結(jié) 392
第19章快速參考 393
第20章 分離應(yīng)用程序邏輯并處理事件 394
20.1 理解委托 394
20.1.1 .NET Framework類庫的委托例子 395
20.1.2 自動化工廠的例子 397
20.1.3 不用委托實現(xiàn)工廠控制系統(tǒng) 397
20.1.4 用委托實現(xiàn)工廠控制系統(tǒng) 398
20.1.5 聲明和使用委托 400
20.2 Lambda表達式和委托 407
20.3 啟用事件通知 408
20.3.1 聲明事件 409
20.3.2 訂閱事件 410
20.3.3 取消訂閱事件 410
20.3.4 引發(fā)事件 410
20.4 理解用戶界面事件 411
小結(jié) 418
第20章快速參考 418
第21章 使用查詢表達式來查詢內(nèi)存中的數(shù)據(jù) 421
21.1 什么是LINQ 421
21.2 在C#應(yīng)用程序中使用LINQ 422
21.2.1 選擇數(shù)據(jù) 424
21.2.2 篩選數(shù)據(jù) 426
21.2.3 排序、分組和聚合數(shù)據(jù) 427
21.2.4 聯(lián)接數(shù)據(jù) 429
21.2.5 使用查詢操作符 430
21.2.6 查詢Tree對象中的數(shù)據(jù) 432
21.2.7 LINQ和推遲求值 437
小結(jié) 440
第21章快速參考 441
第22章 操作符重載 443
22.1 理解操作符 443
22.1.1 操作符的限制 443
22.1.2 重載的操作符 444
22.1.3 創(chuàng)建對稱操作符 445
22.2 理解復(fù)合賦值 447
22.3 聲明遞增和遞減操作符 447
22.4 比較結(jié)構(gòu)和類中的操作符 448
22.5 定義成對的操作符 449
22.6 實現(xiàn)操作符 449
22.7 理解轉(zhuǎn)換操作符 455
22.7.1 提供內(nèi)建轉(zhuǎn)換 455
22.7.2 實現(xiàn)用戶自定義的轉(zhuǎn)換操作符 456
22.7.3 再論創(chuàng)建對稱操作符 457
22.7.4 添加隱式轉(zhuǎn)換操作符 457
小結(jié) 459
第22章快速參考 460
第IV部分 用C#構(gòu)建UWP應(yīng)用
第23章 使用任務(wù)提高吞吐量 463
23.1 使用并行處理執(zhí)行多任務(wù)處理 463
23.2 用.NET Framework實現(xiàn)多任務(wù)處理 464
23.2.1 任務(wù)、線程和線程池 465
23.2.2 創(chuàng)建、運行和控制任務(wù) 466
23.2.3 使用Task類實現(xiàn)并行 處理 469
23.2.4 使用Parallel類對任務(wù) 進行抽象 478
23.2.5 什么時候不要使用 Parallel類 482
23.3 取消任務(wù)和處理異常 484
23.3.1 協(xié)作式取消的原理 485
23.3.2 為Canceled和Faulted任務(wù)使用延續(xù) 496
小結(jié) 496
第23章快速參考 497
第24章 通過異步操作提高響應(yīng)速度 500
24.1 實現(xiàn)異步方法 501
24.1.1 定義異步方法:問題 501
24.1.2 定義異步方法:解決方案 503
24.1.3 定義返回值的異步方法 508
24.1.4 異步方法注意事項 509
24.1.5 異步方法和Windows Runtime API 511
24.1.6 任務(wù)、內(nèi)存分配和效率 512
24.2 用PLINQ進行并行數(shù)據(jù)訪問 514
24.2.1 用PLINQ增強遍歷集合時的性能 515
24.2.2 取消PLINQ查詢 519
24.3 同步對數(shù)據(jù)的并發(fā)訪問 519
24.3.1 鎖定數(shù)據(jù) 522
24.3.2 用于協(xié)調(diào)任務(wù)的同步基元 523
24.3.3 取消同步 525
24.3.4 并發(fā)集合類 525
24.3.5 使用并發(fā)集合和鎖實現(xiàn)線程安全的數(shù)據(jù)訪問 526
小結(jié) 535
第24章快速參考 535
第25章 實現(xiàn)UWP應(yīng)用的用戶界面 538
25.1 UWP應(yīng)用的特點 539
25.2 使用空白模板構(gòu)建UWP應(yīng)用 541
25.2.1 實現(xiàn)可伸縮用戶界面 543
25.2.2 向UI應(yīng)用樣式 568
小結(jié) 576
第25章快速參考 577
第26章 在UWP應(yīng)用中顯示和搜索數(shù)據(jù) 578
26.1 實現(xiàn)Model-View-ViewModel模式 578
26.1.1 通過數(shù)據(jù)綁定顯示數(shù)據(jù) 579
26.1.2 通過數(shù)據(jù)綁定修改數(shù)據(jù) 584
26.1.3 為ComboBox控件使用數(shù)據(jù)綁定 588
26.1.4 創(chuàng)建ViewModel 590
26.1.5 向ViewModel添加命令 594
26.2 用Cortana搜索數(shù)據(jù) 603
小結(jié) 616
第26章快速參考 617
第27章 在UWP應(yīng)用中訪問遠程數(shù)據(jù)庫 618
27.1 從數(shù)據(jù)庫獲取數(shù)據(jù) 618
27.1.1 創(chuàng)建實體模型 623
27.1.2 創(chuàng)建和使用REST Web服務(wù) 631
27.2 通過REST Web服務(wù)插入、更新和刪除數(shù)據(jù) 644
小結(jié) 660
第27章快速參考 661
譯者后記 662
封面圖: