C#與DOTNET 4高級程式設計第五版

C#與DOTNET 4高級程式設計第五版

C#語言作為.NET平台上的第一語言,已經成為目前功能最強大的通用語言之一。

本書是被譽為“C#聖經”的經典巨著,因語言生動流暢、剖析深入、涵蓋全面而廣受推崇,暢銷不衰,曾經獲得Referenceware編程圖書大獎,併入選Jolt大獎提名。書中探討了C#語言和.NET平台的各種特性,包括重載運算符、指針、泛型等高級功能和CIL、遠程處理、Windows Forms、ASP.NET、ADO.NET等技術,不少概念都通過IL代碼透視其背後的本質,使你知其然,更知其所以然。新版更透徹闡述了C# 2010和.NET 4新功能,包括動態語言運行時(DLR)、任務並行庫(TPL,包括PLINQ)、ADO.NET實體框架(包括LINQ to EF)、擴展的WPF API,以及改進的COM互操作。

與同類圖書不同,全書由世界級C#專家Andrew Troelsen以一人之力完成,因此寫作思路和布局謀篇都獨具匠心。中文版由國內多位微軟MVP聯手譯出,強大的譯者陣容有力地保證了這部權威著作原汁原味的重現。

基本介紹

  • 書名:C#與DOTNET 4高級程式設計(第五版)
  • 作者:[美] Andrew Troelsen 
  • 原版名稱:Pro C# 2010 and the .NET 4 Platform,5E
  • 譯者:朱曄 等
  • ISBN: 0-672-33063-6
  • 頁數:1197
  • 出版社:人民郵電出版社
  • 出版時間:2011年
  • 開本:大16開
  • 版本:第5版
內容概要,作者簡介,目錄,

內容概要

本書是一本c#編程方面的優秀教材,以c# 4規範為標準,全面介紹了c#編程的原理和方法。本書前兩章簡要介紹了visual c#的特性、發展歷史以及使用方法,隨後以一個簡單的c#程式帶領讀者涉足編程。接著,給出了c#中的類、對象、方法等概念。後續內容主要涉及c#中的幾種控制語句、方法的使用、數組、linq、類與對象、繼承、多態、接口、運算符重載、異常處理、gui、字元串和字元處理、檔案和流操作、資料庫、ASP。NET、搜尋與排序、數據結構、泛型、集合等。全書以幾個大型的編程案例貫穿各章,保持了知識點的連貫性。

作者簡介

Andrew Troelsen 世界級C#專家,微軟Visual C# MVP。他是著名的微軟技術諮詢企業Intertech的合伙人和副總裁,該公司的客戶包括微軟霍尼韋爾、美國宇航局等。他曾為MSDN網站和 MacTech網站撰寫了有關各種作業系統平台上.NET技術的文章,並經常在業界主要技術會議上發表演講和開設技術講座。除本書外,他還撰寫了COM and .NET Interoperability和Visual Basic .NET and the .NET Platform: An Advanced Guide等十多部.NET技術方面的著作。

目錄

第一部分 C#與.NET平台
第1章 .NET之道 2
1.1 .NET之前的世界 2
1.2 .NET解決方案 5
1.3 .NET平台構造塊(CLR、CTS和CLS)
簡介 5
1.4 其他支持.NET的程式語言 7
1.5 .NET程式集概覽 9
1.6 CTS 14
1.7 CLS 17
1.8 CLR 18
1.9 程式集/命名空間/類型的區別 19
1.10 使用ildasm.exe探索程式集 24
1.11 使用Reflector來查看程式集 26
1.12 部署.NET運行庫 27
1.13 .NET的平台無關性 27
1.14 小結 28
第2章 構建C#應用程式 30
2.1 .NET Framework 4 SDK的作用 30
2.2 用csc.exe構建C#應用程式 31
2.3 使用Notepad++構建.NET應用程式 36
2.4 使用SharpDevelop構建.NET應用程式 36
2.5 使用Visual C# 2010 Express構建.NET
應用程式 38
2.6 使用Visual Studio 2010構建.NET套用
程式 40
2.7 小結 50
第二部分 C#核心編程結構
第3章 C#核心編程結構Ⅰ 52
3.1 一個簡單的C#程式 52
3.2 有趣的題外話:System.Environment類的其他成員 57
3.3 System.Console類 58
3.4 系統數據類型和C#簡化符號 62
3.5 使用字元串數據 70
3.6 窄化和寬化數據類型轉換 76
3.7 隱式類型本地變數 81
3.8 C#疊代結構 84
3.9 條件結構和關係/相等操作符 86
3.10 小結 89
第4章 C#核心編程結構Ⅱ 90
4.1 方法和參數修飾符 90
4.2 C#中的數組操作 99
4.3 枚舉類型 105
4.4 結構類型 109
4.5 值類型和引用類型 112
4.6 C#可空類型 118
4.7 小結 121
第5章 定義封裝的類類型 122
5.1 C#類類型 122
5.2 構造函式 125
5.3 this關鍵字的作用 128
5.4 static關鍵字 133
5.5 定義OOP的支柱 139
5.6 C#訪問修飾符 142
5.7 第一個支柱:C#的封裝服務 144
5.8 自動屬性 154
5.9 對象初始化器語法 157
5.10 常量數據 160
5.11 分部類型 162
5.12 小結 163
第6章 繼承和多態 164
6.1 繼承的基本機制 164
6.2 回顧Visual Studio類關係圖 168
6.3 OOP的第二個支柱:繼承 169
6.4 包含/委託編程 174
6.5 OOP的第三個支柱:C#的多態支持 176
6.6 基類/派生類的轉換規則 187
6.7 超級父類:System.Object 189
6.8 小結 195
第7章 結構化異常處理 196
7.1 錯誤、bug與異常 196
7.2 .NET異常處理的作用 197
7.3 最簡單的例子 199
7.4 配置異常的狀態 202
7.5 系統級異常(System.System-Exception) 206
7.6 應用程式級異常(System.Applica-tionException) 207
7.7 處理多個異常 210
7.8 誰在引發什麼異常 215
7.9 未處理異常的後果 215
7.10 使用Visual Studio調試未處理的異常 216
7.11 損壞狀態異常簡介 217
7.12 小結 218
第8章 對象的生命周期 219
8.1 類、對象和引用 219
8.2 對象生命周期的基礎 220
8.3 應用程式根的作用 223
8.4 對象的代 224
8.5 .NET 1.0 至.NET 3.5的並發垃圾回收 225
8.6 .NET 4下的後台垃圾回收 225
8.7 System.GC類型 225
8.8 構建可終結對象 229
8.9 構建可處置對象 231
8.10 構建可終結類型和可處置類型 234
8.11 延遲對象實例化 237
8.12 小結 240
第三部分 高級C#編程結構
第9章 接口 242
9.1 接口類型 242
9.2 定義自定義接口 245
9.3 實現接口 247
9.4 在對象級別調用接口成員 248
9.5 接口作為參數 250
9.6 接口作為返回值 252
9.7 接口類型數組 253
9.8 使用Visual Studio 2010實現接口 253
9.9 通過顯式接口實現解決命名衝突 254
9.10 設計接口層次結構 257
9.11 構建可枚舉類型(IEnumerable和IEnumerator) 260
9.12 構建可克隆的對象(ICloneable) 265
9.13 構建可比較的對象(IComparable) 269
9.14 小結 273
第10章 泛型 274
10.1 非泛型集合 274
10.2 泛型類型參數的作用 281
10.3 System.Collections.Generic命名空間 285
10.4 創建自定義泛型方法 292
10.5 創建自定義泛型結構和類 294
10.6 類型參數的約束 297
10.7 小結 300
第11章 委託、事件和Lambda 301
11.1 .NET委託類型 301
11.2 在C#中定義委託類型 302
11.3 System.MulticastDelegate與System.Delegate基類 304
11.4 最簡單的委託示例 305
11.5 使用委託傳送對象狀態通知 307
11.6 方法組轉換語法 313
11.7 委託協變 314
11.8 泛型委託 316
11.9 C#事件 318
11.10 C#匿名方法 325
11.11 Lambda表達式 328
11.12 小結 333
第12章 高級C#語言特性 335
12.1 索引器方法 335
12.2 操作符重載 339
12.3 自定義類型轉換 347
12.4 擴展方法 352
12.5 分部方法 360
12.6 匿名類型 362
12.7 指針類型 367
12.8 小結 373
第13章 LINQ to Object  374
13.1 LINQ特有的編程結構 374
13.2 LINQ的作用 377
13.3 將LINQ查詢套用於原始數組 379
13.4 返回LINQ查詢的結果 385
13.5 將LINQ查詢套用到集合對象 387
13.6 C#LINQ查詢操作符 389
13.7 LINQ查詢語句的內部表示 396
13.8 小結 400
第四部分 用.NET程式集編程
第14章 .NET程式集入門 402
14.1 定義自定義命名空間 402
14.2 .NET程式集的作用 407
14.3 .NET程式集的格式 409
14.4 構建和使用單檔案程式集 412
14.5 構建和使用多檔案程式集 421
14.6 私有程式集 423
14.7 共享程式集 427
14.8 使用共享程式集 433
14.9 配置共享程式集 435
14.10 發行者策略程式集 439
14.11 <codeBase>元素 440
14.12 System.Configuration命名空間 441
14.13 小結 442
第15章 類型反射、晚期綁定和基於特性的編程 443
15.1 類型元數據的必要性 443
15.2 反射 447
15.3 構建自定義的元數據查看器 450
15.4 動態載入程式集 454
15.5 反射共享程式集 457
15.6 晚期綁定 458
15.7 .NET特性的作用 461
15.8 構建自定義特性 465
15.9 程式集級別(和模組級別)特性 467
15.10 使用早期綁定反射特性 469
15.11 使用晚期綁定反射特性 470
15.12 反射、晚期綁定和自定義特性的使用背景 471
15.13 構建可擴展的應用程式 472
15.14 小結 477
第16章 進程、應用程式域和對象上下文 478
16.1 Windows進程的作用 478
16.2 .NET平台下與進程進行互動 480
16.3 .NET應用程式域 488
16.4 與默認應用程式域進行互動 489
16.5 創建新的應用程式域 492
16.6 對象上下文邊界 495
16.7 進程、應用程式域和上下文小結 498
16.8 小結 499
第17章 CIL和動態程式集的作用 500
17.1 學習CIL語法的原因 500
17.2 CIL指令、特性和操作碼 501
17.3 入棧和出棧:CIL基於棧的本質 502
17.4 正反向工程 504
17.5 CIL指令和特性 510
17.6 .NET基礎類庫、C#和CIL數據類型的映射 515
17.7 在CIL中定義類型成員 516
17.8 剖析CIL操作碼 518
17.9 使用CIL構建.NET程式集 522
17.10 動態程式集 526
17.11 小結 534
第18章 動態類型和動態語言運行時 535
18.1 dynamic關鍵字的作用 535
18.2 DLR的作用 540
18.3 使用動態類型簡化後期綁定調用 542
18.4 使用動態數據簡化COM互操作 544
18.5 使用C# 2010的特性進行COM互操作 548
18.6 小結 552
第五部分 .NET基礎類庫
第19章 構建多執行緒應用程式 554
19.1 進程、應用程式域、上下文及執行緒之間的關係 554
19.2 .NET委託的簡短回顧 556
19.3 委託的異步性 557
19.4 異步調用方法 559
19.5 System.Threading命名空間 564
19.6 System.Threading.Thread類 564
19.7 以編程方式創建次執行緒 567
19.8 並發問題 572
19.9 使用Timer Callback編程 578
19.10 CLR執行緒池 579
19.11 .NET平台下的並行編程 581
19.12 並行LINQ查詢(PLINQ) 588
19.13 小結 590
第20章 檔案輸入輸出和對象序列化 591
20.1 研究System.IO命名空間 591
20.2 Directory(Info)和File(Info)類型 592
20.3 使用DirectoryInfo類型 593
20.4 使用Directory類型 596
20.5 使用DriveInfo類類型 597
20.6 使用FileInfo類 598
20.7 使用File類型 601
20.8 Stream抽象類 603
20.9 使用StreamWriter和StreamReader類型 605
20.10 使用StringWriter和StringReader類型 608
20.11 使用BinaryWriter和Binary-Reader 609
20.12 以編程方式“觀察”檔案 610
20.13 對象序列化 612
20.14 為序列化配置對象 614
20.15 選擇序列化格式化程式 616
20.16 使用BinaryFormatter序列化對象 618
20.17 使用SoapFormatter序列化對象 620
20.18 使用XmlSerializer序列化對象 621
20.19 序列化對象集合 623
20.20 自定義Soap/Binary序列化過程 624
20.21 小結 628
第21章 ADO.NET之一:連線層 630
21.1 ADO.NET的巨觀定義 630
21.2 ADO.NET數據提供程式 632
21.3 其他的ADO.NET命名空間 634
21.4 System.Data命名空間的類型 635
21.5 使用接口的抽象數據提供程式 639
21.6 創建AutoLot資料庫 641
21.7 ADO.NET數據提供程式工廠模型 645
21.8 ADO.NET的連線層 650
21.9 使用數據讀取器 654
21.10 構建可重用的數據訪問庫 656
21.11 創建控制台UI前端 664
21.12 資料庫事務 669
21.13 小結 673
第22章 ADO.NET之二:下線層 674
22.1 ADO.NET下線層 674
22.2 DataSet的作用 675
22.3 使用DataColumn 677
22.4 使用DataRow 679
22.5 使用DataTable 682
22.6 將DataTable對象綁定到用戶界面 687
22.7 使用數據適配器 695
22.8 向AutoLotDAL.dll添加下線功能 698
22.9 多表DataSet對象和數據關係 701
22.10 Windows Forms資料庫設計器工具 706
22.11 將強類型的資料庫代碼隔離到類庫中 713
22.12 LINQ to DataSet 717
22.13 小結 722
第23章 ADO.NET之三:Entity Framework  723
23.1 Entity Framework的作用 723
23.2 創建和分析EDM 730
23.3 對概念模型進行編程 739
23.4 AutoLotDAL 4.0版,加入實體 744
23.5 將數據實體綁定到Windows Forms GUI 748
23.6 小結 752
第24章 LINQ to XML簡介 753
24.1 兩個XML API的故事 753
24.2 System.Xml.Linq命名空間的成員 756
24.3 使用XElement和XDocument 759
24.4 在記憶體中操作XML文檔 762
24.5 小結 766
第25章 WCF 767
25.1 各種分散式計算API 767
25.2 WCF的作用 772
25.3 WCF核心程式集 774
25.4 Visual Studio WCF項目模板 775
25.5 WCF應用程式的基本構成 776
25.6 WCF的ABC 777
25.7 構建WCF服務 781
25.8 承載WCF服務 784
25.9 構建WCF客戶端應用程式 791
25.10 用WCF 4.0簡化配置設定 795
25.11 使用WCF服務庫項目模板 800
25.12 以Windows服務承載WCF服務 803
25.13 從客戶端異步調用服務 807
25.14 定義WCF數據契約 809
25.15 小結 813
第26章 Windows Workflow Foundation
4.0簡介 814
26.1 定義業務流程 814
26.2 構建簡單的工作流 815
26.3 WF 4.0運行時 818
26.4 檢查WF 4.0中的活動 823
26.5 構建流程圖工作流 825
26.6 用專門的庫隔離工作流 833
26.7 使用工作流庫 840
26.8 小結 842
第六部分 使用WPF構建桌面用戶界面
第27章 WPF和XAML 844
27.1 WPF背後的動機 844
27.2 各種形式的WPF應用程式 846
27.3 WPF程式集 850
27.4 創建不使用XAML的WPF應用程式 856
27.5 僅使用XAML構建WPF應用程式 863
27.6 將標記轉換為.NET程式集 867
27.7 WPF XAML語法 871
27.8 使用代碼隱藏檔案構建WPF應用程式 879
27.9 使用Visual Studio 2010構建WPF應用程式 881
27.10 小結 889
第28章 使用WPF控制項編程 890
28.1 WPF核心控制項概述 890
28.2 使用面板控制內容布局 894
28.3 使用嵌套面板構建視窗框架 903
28.4 WPF控制項命令 907
28.5 使用Expression Blend構建WPF用戶界面 912
28.6 構建Ink API選項卡 919
28.7 Documents API 928
28.8 構建Documents選項卡 929
28.9 WPF數據綁定模型 934
28.10 小結 941
第29章 WPF圖形呈現服務 942
29.1 理解WPF的圖形呈現服務 942
29.2 使用形狀呈現圖形數據 943
29.3 WPF畫刷和畫筆 952
29.4 圖形變換 955
29.5 使用Expression Blend處理形狀 958
29.6 使用繪圖和幾何圖形呈現圖形數據 962
29.7 使用Expression Design生成複雜的向量圖形 965
29.8 使用可視化層呈現圖形數據 967
29.9 小結 972
第30章 WPF資源、動畫和樣式 973
30.1 理解WPF資源系統 973
30.2 使用對象(邏輯)資源 978
30.3 理解WPF動畫服務 988
30.4 用XAML創建動畫 992
30.5 WPF樣式的作用 994
30.6 使用Expression Blend生成樣式 1001
30.7 小結 1003
第31章 WPF控制項模板和用戶控制項 1004
31.1 依賴屬性的作用 1004
31.2 構建自定義依賴屬性 1008
31.3 路由事件 1013
31.4 邏輯樹、可視樹和默認模板 1016
31.5 在Visual Studio 2010中構建自定義控制項模板 1022
31.6 使用Blend構建自定義UserControl 1028
31.7 創建WPF應用程式Jackpot Deluxe 1035
31.8 小結 1043
第七部分 使用ASP.NET構建Web應用程式
第32章 構建ASP.NET網頁 1046
32.1 HTTP的作用 1046
32.2 Web應用程式和Web服務 1047
32.3 HTML的作用 1048
32.4 客戶端腳本的作用 1053
32.5 回發到Web伺服器 1054
32.6 ASP.NET API的特性 1055
32.7 構建單個檔案的ASP.NET網頁 1058
32.8 使用代碼檔案構建ASP.NET Web頁面 1066
32.9 ASP.NET Web Site和ASP.NET Web Application 1070
32.10 ASP.NET網站目錄結構 1072
32.11 頁面類型的繼承鏈 1073
32.12 與傳入的HTTP請求互動 1074
32.13 與輸出HTTP回響互動 1077
32.14 ASP.NET網頁的生命周期 1078
32.15 Web.config檔案的作用 1081
32.16 小結 1082
第33章 ASP.NET Web控制項、母版頁和主題 1083
33.1 Web控制項的本質 1083
33.2 Control和WebControl基類 1085
33.3 ASP.NET Web控制項的類別 1089
33.4 構建ASP.NET汽車網站 1091
33.5 驗證控制項的作用 1104
33.6 使用主題 1110
33.7 小結 1114
第34章 ASP.NET狀態管理技術 1115
34.1 狀態問題 1115
34.2 ASP.NET狀態管理技術 1117
34.3 ASP.NET視圖狀態的作用 1117
34.4 Global.asax檔案的作用 1120
34.5 應用程式狀態與會話狀態的差別 1123
34.6 使用應用程式快取 1127
34.7 維護會話數據 1131
34.8 cookie 1134
34.9 <sessionState>元素的作用 1136
34.10 ASP.NET用戶配置API 1137
34.11 小結 1143
第八部分 附 錄
附錄A Windows Forms編程 1146
A.1 Windows Forms命名空間 1146
A.2 創建一個簡單的Windows Forms程式 1147
A.3 Visual Studio Windows Forms項目模板 1152
A.4 剖析Form 1157
A.5 回響滑鼠活動 1163
A.6 設計對話框 1166
A.7 通過GDI+呈現圖形數據 1171
A.8 創建一個完整的Windows Forms應用程式 1175
A.9 小結 1182
附錄B 使用Mono進行平台無關的.NET開發 1183
B.1 .NET的平台無關性 1183
B.2 獲取和安裝Mono 1186
B.3 Mono開發語言 1188
B.4 兼容Microsoft的Mono開發工具 1189
B.5 使用Mono創建.NET 應用程式 1190
B.6 誰在使用Mono 1196
B.7 推薦學習 1196
B.8 小結 1197

相關詞條

熱門詞條

聯絡我們