學(xué)習C#語(yǔ)言的經(jīng)典教材之一:
*提供了很多的基礎的、覆蓋面很廣的實(shí)例。
*各類(lèi)性能提示與編程提示。
*介紹C#6中的新功能,函數式編程。
*介紹了C11標準的功能。
本書(shū)是一本C#編程方面的優(yōu)秀教材。在第五版的基礎上,全書(shū)根據*新的C# 6規范進(jìn)行了更新。除了講解面向對象編程的類(lèi)與對象、方法、控制語(yǔ)句、數組、繼承、多態(tài)、異常處理、GUI、字符串和字符、文件和流、搜索與排序、泛型、集合、數據庫等基本概念,還重點(diǎn)介紹了C# 6中新包含的功能,比如字符串插值、索引初始值設定項、null條件運算符等,并且專(zhuān)門(mén)講解了函數式編程的相關(guān)特點(diǎn)。
Paul Deitel和Harvey Deitel是全球暢銷(xiāo)的編程語(yǔ)言教材和專(zhuān)業(yè)圖書(shū)作家,“How to Program”系列是其*負盛名的一套計算機編程教材,已經(jīng)銷(xiāo)售近40年,并被翻譯成中文在內的十幾種語(yǔ)言。他們成立的Deitel & Associates公司是一家國際知名的企業(yè)培訓和寫(xiě)作公司,專(zhuān)門(mén)進(jìn)行計算機編程語(yǔ)言、對象技術(shù)、移動(dòng)應用開(kāi)發(fā)及Internet和Web軟件技術(shù)方面的培訓和寫(xiě)作,出版了一流的編程專(zhuān)業(yè)的大學(xué)教材、 專(zhuān)業(yè)圖書(shū)以及LiveLessons視頻課程。
張君施,北京工商大學(xué)數理系副教授,黨支部書(shū)記。研究方向為概率論與數理統計、計算機語(yǔ)言,翻譯過(guò)多部經(jīng)典編程教材。
目 錄
第1章 計算機、Internet和Visual C#簡(jiǎn)介 1
1.1 簡(jiǎn)介 1
1.2 在行業(yè)和研究領(lǐng)域的計算機與Internet 2
1.3 硬件和軟件 3
1.4 數據層次 4
1.5 機器語(yǔ)言、匯編語(yǔ)言和高級語(yǔ)言 6
1.6 對象技術(shù) 7
1.7 Internet和WWW 9
1.8 C# 10
1.9 Microsoft的 .NET 13
1.10 Windows操作系統 14
1.11 Visual Studio集成開(kāi)發(fā)環(huán)境 15
1.12 在Visual Studio Community中測試Painter程序 15
自測題 17
自測題答案 18
練習題 19
挑戰題 20
與挑戰題相關(guān)的資源 21
第2章 Visual Studio和可視化編程簡(jiǎn)介 22
2.1 簡(jiǎn)介 22
2.2 Visual Studio Community 2015 IDE概述 22
2.3 菜單欄和工具欄 26
2.4 Visual Studio IDE概覽 27
2.5 Help菜單與上下文相關(guān)幫助 30
2.6 可視化編程:創(chuàng )建顯示文本和圖像的簡(jiǎn)單程序 30
2.7 小結 36
2.8 Web資源 36
摘要 37
術(shù)語(yǔ)表 38
自測題 38
自測題答案 39
練習題 39
第3章 C#編程入門(mén) 43
3.1 簡(jiǎn)介 44
3.2 一個(gè)簡(jiǎn)單程序:顯示一行文本 44
3.3 在VIsual Studio中創(chuàng )建簡(jiǎn)單的程序 48
3.4 修改C#程序 52
3.5 字符串插值 54
3.6 另一個(gè)C#程序:整數相加 54
3.7 內存概念 57
3.8 算術(shù)運算 58
3.9 判斷:相等性運算符與關(guān)系運算符 60
3.10 小結 64
摘要 64
術(shù)語(yǔ)表 66
自測題 67
自測題答案 68
練習題 70
挑戰題 73
第4章 類(lèi)、對象、方法和string簡(jiǎn)介 74
4.1 簡(jiǎn)介 75
4.2 測試一個(gè)Account類(lèi) 75
4.3 包含實(shí)例變量、Set方法和Get方法的Account類(lèi) 77
4.4 創(chuàng )建、編譯和運行帶兩個(gè)類(lèi)的Visual C#項目 81
4.5 包含Set方法和Get方法的軟件工程 82
4.6 具有屬性而不是Set方法和Get方法的Account類(lèi) 82
4.7 自動(dòng)實(shí)現的屬性 85
4.8 Account類(lèi):用構造函數初始化對象 86
4.9 具有余額的Account類(lèi)以及貨幣值處理 88
4.10 小結 92
摘要 93
術(shù)語(yǔ)表 96
自測題 97
自測題答案 97
練習題 98
挑戰題 99
第5章 算法設計與控制語(yǔ)句(1) 100
5.1 簡(jiǎn)介 101
5.2 算法 101
5.3 偽代碼 101
5.4 控制結構 102
5.5 if單選擇語(yǔ)句 103
5.6 if…else雙選擇語(yǔ)句 104
5.7 Student類(lèi):嵌套if…else語(yǔ)句 107
5.8 while循環(huán)語(yǔ)句 109
5.9 形成算法:計數器控制循環(huán) 110
5.10 形成算法:標記控制循環(huán) 113
5.11 形成算法:嵌套控制語(yǔ)句 118
5.12 復合賦值運算符 121
5.13 增量運算符和減量運算符 122
5.14 簡(jiǎn)單類(lèi)型 124
5.15 小結 124
摘要 125
術(shù)語(yǔ)表 127
自測題 128
自測題答案 129
練習題 130
挑戰題 135
第6章 控制語(yǔ)句(2) 137
6.1 簡(jiǎn)介 138
6.2 計數器控制循環(huán)的實(shí)質(zhì) 138
6.3 for循環(huán)語(yǔ)句 139
6.4 使用for語(yǔ)句的示例 141
6.5 程序:對偶數求和 142
6.6 程序:復利計算 143
6.7 do…while循環(huán)語(yǔ)句 145
6.8 switch多選擇語(yǔ)句 146
6.9 AutoPolicy類(lèi)案例分析:switch語(yǔ)句中的字符串 150
6.10 break和continue語(yǔ)句 152
6.11 邏輯運算符 153
6.12 結構化編程小結 158
6.13 小結 161
摘要 161
術(shù)語(yǔ)表 163
自測題 164
自測題答案 165
練習題 166
挑戰題 169
第7章 方法:深入探究 170
7.1 簡(jiǎn)介 171
7.2 C#的代碼包裝 171
7.3 靜態(tài)方法、靜態(tài)變量和Math類(lèi) 172
7.4 聲明多參數方法 174
7.5 關(guān)于方法使用的說(shuō)明 177
7.6 實(shí)參提升與強制轉換 178
7.7 .NET Framework類(lèi)庫 179
7.8 案例分析:隨機數生成方法 181
7.9 案例分析:機會(huì )游戲(引入枚舉) 184
7.10 聲明的作用域 188
7.11 方法調用棧與活動(dòng)記錄 190
7.12 方法重載 193
7.13 可選參數 194
7.14 命名參數 195
7.15 C# 6的表達式方法和屬性 196
7.16 遞歸 196
7.17 值類(lèi)型與引用類(lèi)型 199
7.18 按值與按引用傳遞實(shí)參 199
7.19 小結 202
摘要 202
術(shù)語(yǔ)表 207
自測題 207
自測題答案 209
練習題 210
挑戰題 215
第8章 數組以及異常處理簡(jiǎn)介 216
8.1 簡(jiǎn)介 217
8.2 數組 217
8.3 聲明和創(chuàng )建數組 218
8.4 數組使用示例 219
8.5 用數組分析匯總結果以及異常處理 226
8.6 案例分析:模擬洗牌和發(fā)牌 228
8.7 將數組和數組元素傳入方法 232
8.8 案例分析:GradeBook類(lèi)用數組保存成績(jì) 233
8.9 多維數組 237
8.10 案例分析:使用矩形數組的GradeBook類(lèi) 241
8.11 變長(cháng)實(shí)參表 245
8.12 使用命令行實(shí)參 246
8.13 (選修)按值與按引用傳遞數組 248
8.14 小結 251
摘要 251
術(shù)語(yǔ)表 254
自測題 254
自測題答案 255
練習題 256
拓展內容:建立自己的計算機 262
挑戰題 267
第9章 LINQ和List集合簡(jiǎn)介 268
9.1 簡(jiǎn)介 268
9.2 用LINQ查詢(xún)int數組 269
9.3 用LINQ查詢(xún)Employee對象數組 272
9.4 集合 276
9.5 用LINQ查詢(xún)泛型List集合 279
9.6 小結 281
9.7 Deitel的LINQ資源中心 282
摘要 282
術(shù)語(yǔ)表 284
自測題 284
自測題答案 284
練習題 284
第10章 類(lèi)與對象:深入探究 286
10.1 簡(jiǎn)介 286
10.2 Time類(lèi)案例分析以及拋出異常 287
10.3 控制對成員的訪(fǎng)問(wèn) 290
10.4 用this引用訪(fǎng)問(wèn)當前對象的成員 290
10.5 Time類(lèi)案例分析:重載構造函數 292
10.6 默認構造函數和無(wú)參數構造函數 296
10.7 組合 297
10.8 垃圾回收與析構函數 299
10.9 靜態(tài)類(lèi)成員 300
10.10 只讀實(shí)例變量 302
10.11 Class View與Object Browser 303
10.12 對象初始值設定項 304
10.13 運算符重載以及struct簡(jiǎn)介 305
10.14 Time類(lèi)案例分析:擴展方法 308
10.15 小結 310
摘要 310
術(shù)語(yǔ)表 313
自測題 313
自測題答案 313
練習題 314
第11章 面向對象編程:繼承 316
11.1 簡(jiǎn)介 316
11.2 基類(lèi)與派生類(lèi) 317
11.3 protected成員 318
11.4 基類(lèi)與派生類(lèi)的關(guān)系 319
11.5 派生類(lèi)的構造函數 333
11.6 繼承與軟件工程 333
11.7 object類(lèi) 334
11.8 小結 334
摘要 335
術(shù)語(yǔ)表 336
自測題 336
自測題答案 337
練習題 337
第12章 面向對象編程:多態(tài)與接口 339
12.1 簡(jiǎn)介 339
12.2 多態(tài)示例 340
12.3 演示多態(tài)行為 341
12.4 抽象類(lèi)和抽象方法 343
12.5 案例分析:使用多態(tài)的工資系統 345
12.6 sealed方法和類(lèi) 355
12.7 案例分析:創(chuàng )建和使用接口 356
12.8 小結 362
摘要 362
術(shù)語(yǔ)表 364
自測題 364
自測題答案 364
練習題 365
挑戰題 366
第13章 異常處理:深入探究 367
13.1 簡(jiǎn)介 368
13.2 示例:除數為0不用異常處理 368
13.3 示例:處理DivideByZeroException和FormatException異常 370
13.4 .NET的Exception層次 374
13.5 finally語(yǔ)句塊 375
13.6 using語(yǔ)句 380
13.7 Exception屬性 381
13.8 用戶(hù)定義異常類(lèi) 384
13.9 檢驗空引用以及C# 6的“?.”運算符 387
13.10 異常過(guò)濾器與C# 6的when子句 389
13.11 小結 389
摘要 389
術(shù)語(yǔ)表 392
自測題 392
自測題答案 393
練習題 393
第14章 圖形用戶(hù)界面與Windows窗體(1) 395
14.1 簡(jiǎn)介 395
14.2 Windows窗體 396
14.3 事件處理 398
14.4 控件的屬性和布局 403
14.5 標簽、文本框和按鈕 406
14.6 組框和面板 408
14.7 復選框和單選鈕 410
14.8 圖形框 416
14.9 工具提示 418
14.10 數字上下控件 419
14.11 鼠標事件處理 420
14.12 鍵事件處理 422
14.13 小結 424
摘要 424
術(shù)語(yǔ)表 428
自測題 429
自測題答案 429
練習題 430
挑戰題 431
第15章 圖形用戶(hù)界面與Windows窗體(2) 433
15.1 簡(jiǎn)介 433
15.2 菜單 434
15.3 MonthCalendar控件 440
15.4 DateTimePicker控件 441
15.5 LinkLabel控件 443
15.6 ListBox控件 446
15.7 CheckedListBox控件 449
15.8 ComboBox控件 450
15.9 TreeView控件 453
15.10 ListView控件 457
15.11 TabControl控件 462
15.12 多文檔界面(MDI)窗口 465
15.13 可視化繼承 470
15.14 用戶(hù)定義的控件 474
15.15 小結 476
摘要 476
術(shù)語(yǔ)表 479
自測題 480
自測題答案 480
練習題 481
第16章 字符串和字符:深入探究 483
16.1 簡(jiǎn)介 483
16.2 字符和字符串基礎 484
16.3 string構造函數 484
16.4 string索引器、Length屬性和CopyTo方法 485
16.5 字符串比較 487
16.6 查找字符串中的字符和子串 489
16.7 抽取字符串中的子串 491
16.8 拼接字符串 492
16.9 其他的string方法 492
16.10 StringBuilder類(lèi) 493
16.11 StringBuilder類(lèi)的Length屬性、Capacity屬性、EnsureCapacity方法 以及索引器 494
16.12 StringBuilder類(lèi)的Append和AppendFormat方法 495
16.13 StringBuilder類(lèi)的Insert、Remove和Replace方法 497
16.14 幾個(gè)Char方法 499
16.15 (在線(xiàn))正則表達式處理簡(jiǎn)介 501
16.16 小結 501
摘要 501
術(shù)語(yǔ)表 503
自測題 503
自測題答案 504
練習題 504
挑戰題 504
第17章 文件和流 506
17.1 簡(jiǎn)介 506
17.2 文件和流 506
17.3 創(chuàng )建順序訪(fǎng)問(wèn)文本文件 507
17.4 從順序訪(fǎng)問(wèn)文本文件讀取數據 513
17.5 案例分析:信用查詢(xún)程序 516
17.6 序列化 520
17.7 用對象序列化創(chuàng )建順序訪(fǎng)問(wèn)文件 521
17.8 從二進(jìn)制文件讀取和去序列化數據 524
17.9 File類(lèi)和Directory類(lèi) 525
17.10 小結 531
摘要 532
術(shù)語(yǔ)表 533
自測題 534
自測題答案 534
練習題 535
挑戰題 536
第18章 搜索與排序 537
18.1 簡(jiǎn)介 537
18.2 搜索算法 538
18.3 排序算法 544
18.4 搜索算法和排序算法的效率 553
18.5 小結 554
摘要 554
術(shù)語(yǔ)表 556
自測題 556
自測題答案 556
練習題 556
第19章 定制鏈式數據結構 559
19.1 簡(jiǎn)介 559
19.2 簡(jiǎn)單類(lèi)型struct以及裝箱和拆箱 559
19.3 自引用類(lèi) 560
19.4 鏈表 561
19.5 棧 569
19.6 隊列 572
19.7 樹(shù) 575
19.8 小結 584
摘要 584
術(shù)語(yǔ)表 586
自測題 586
自測題答案 587
練習題 587
拓展內容:建立自己的編譯器 589
第20章 泛型 590
20.1 簡(jiǎn)介 590
20.2 泛型方法的由來(lái) 591
20.3 泛型方法的實(shí)現 592
20.4 類(lèi)型約束 594
20.5 重載泛型方法 597
20.6 泛型類(lèi) 597
20.7 小結 604
摘要 604
術(shù)語(yǔ)表 606
自測題 606
自測題答案 607
練習題 607
第21章 泛型集合以及LINQ/PLINQ函數式編程 609
21.1 簡(jiǎn)介 610
21.2 集合概述 611
21.3 Array類(lèi)和枚舉器 612
21.4 字典集合 615
21.5 泛型LinkedList集合 619
21.6 C# 6的null條件運算符“?[ ]” 623
21.7 C# 6的字典和集合初始值設定項 623
21.8 代理 624
21.9 lambda表達式 626
21.10 函數式編程簡(jiǎn)介 628
21.11 用LINQ方法調用語(yǔ)法和lambda表達式進(jìn)行函數式編程 630
21.12 PLINQ:提升LINQ to Objects在多核處理器上的性能 634
21.13 (選修)泛型類(lèi)型的協(xié)變和逆變 637
21.14 小結 638
摘要 639
術(shù)語(yǔ)表 643
自測題 644
自測題答案 645
練習題 645
函數式編程練習 646
第22章 數據庫和LINQ 648
22.1 簡(jiǎn)介 648
22.2 關(guān)系數據庫 649
22.3 Books數據庫 650
22.4 LINQ to Entities與ADO.NET實(shí)體框架 653
22.5 用LINQ查詢(xún)數據庫 654
22.6 動(dòng)態(tài)綁定查詢(xún)結果 663
22.7 用LINQ取得來(lái)自多個(gè)表的數據 667
22.8 創(chuàng )建主/細視圖程序 671
22.9 地址簿案例分析 673
22.10 工具和Web資源 678
22.11 小結 678
摘要 678
術(shù)語(yǔ)表 681
自測題 682
自測題答案 682
練習題 683
第23章 async、await與異步編程 684
23.1 簡(jiǎn)介 684
23.2 async和await概述 686
23.3 在GUI程序中執行異步任務(wù) 686
23.4 同步執行兩個(gè)計算密集型任務(wù) 689
23.5 異步執行兩個(gè)計算密集型任務(wù) 691
23.6 使用HttpClient類(lèi)異步調用Flickr Web服務(wù) 694
23.7 顯示異步任務(wù)的進(jìn)度 700
23.8 小結 703
摘要 703
術(shù)語(yǔ)表 706
自測題 707
自測題答案 707
練習題 707
附錄A 運算符優(yōu)先級表 709
附錄B 簡(jiǎn)單類(lèi)型 711
附錄C ASCII字符集 712
索引 715