書籍簡(jiǎn)介:
本書是C#領(lǐng)域久負(fù)盛名的經(jīng)典著作,深入全面地?cái)⑹隽薈#編程語(yǔ)言和.NET平臺(tái)核心,并以大量示例剖析相關(guān)概念。書中介紹了C#的各種語(yǔ)言構(gòu)造、.NET 2.0的類、核心API、公共中間語(yǔ)言(CIL)、動(dòng)態(tài)程序集和ASP.NET擴(kuò)展等內(nèi)容;同時(shí)也介紹了.NET 3.0和.NET 3.5中新的編程API,包括WPF 、WCF和WF 的功能;另外,還介紹了*的C# 3.0編程語(yǔ)言、LINQ編程技術(shù)、COM與.NET 的互操作性以及平臺(tái)無關(guān)的.NET開發(fā)。
本書由微軟C# MVP Andrew Troelsen編寫,歷經(jīng)多次修訂,適合各層次.NET開發(fā)人員閱讀。
作者簡(jiǎn)介:
Andrew Troelsen*c#專家,微軟VisuaI C#MVP。他是著名的微軟技術(shù)咨詢企業(yè)Intertech的合伙人和副總裁,該公司的客戶包括微軟、霍尼韋爾、美國(guó)宇航局等。他曾為MSDN網(wǎng)站和MacTech網(wǎng)站撰寫了有關(guān)各種操作系統(tǒng)平臺(tái)上.NET技術(shù)的文章,并經(jīng)常在業(yè)界主要技術(shù)會(huì)議上發(fā)表演講
出版日期:
2009年03月
章節(jié)目錄:
第一部分 C#和.NET平臺(tái)簡(jiǎn)介
第1章 NET之道
1.1 NET之前的世界
1.2 NET解決方案
1.3 NET平臺(tái)構(gòu)造塊(CLR、CTS和CLS)簡(jiǎn)介
1.4 其他支持.NET的編程語(yǔ)言
1.5 NET程序集概覽
1.6 CTS
1.7 CLS
1.8 CLR
1.9 程序集/命名空間/類型的區(qū)別
1.10 使用ildasm.exe探索程序集
1.11 使用Lutz Roeder的Reflector來查看程序集
1.12 部署.NET運(yùn)行庫(kù)
1.13 NET的平臺(tái)無關(guān)性
1.14 小結(jié)
第2章 構(gòu)建C#應(yīng)用程序
2.1 NET Framework 3.5 SDK的作用
2.2 用csc.exe構(gòu)建C#應(yīng)用程序
2.3 使用TextPad構(gòu)建.NET應(yīng)用程序
2.4 使用Notepad 構(gòu)建.NET應(yīng)用程序
2.5 使用SharpDevelop構(gòu)建.NET應(yīng)用程序
2.6 使用Visual C# 2008 Express構(gòu)建.NET應(yīng)用程序
2.7 使用Visual Studio 2008構(gòu)建.NET應(yīng)用程序
2.8 其他.NET開發(fā)工具
2.9 小結(jié)
第二部分 C#核心編程結(jié)構(gòu)
第3章 C#核心編程結(jié)構(gòu)Ⅰ
3.1 一個(gè)簡(jiǎn)單的C#程序
3.2 有趣的題外話:System.Environment類的其他成員
3.3 System.Console類
3.4 系統(tǒng)數(shù)據(jù)類型和C#簡(jiǎn)化符號(hào)
3.5 System.String數(shù)據(jù)類型
3.6 窄化和寬化數(shù)據(jù)類型轉(zhuǎn)換
3.7 C#迭代結(jié)構(gòu)
3.8 條件結(jié)構(gòu)和關(guān)系/相等運(yùn)算符
3.9 小結(jié)
第4章 C#核心編程結(jié)構(gòu)Ⅱ
4.1 方法和參數(shù)修飾符
4.2 成員重載
4.3 C#中的數(shù)組操作
4.4 枚舉類型
4.5 結(jié)構(gòu)類型
4.6 值類型和引用類型
4.7 值類型和引用類型:最后的細(xì)節(jié)
4.8 C#可空類型
4.9 小結(jié)
第5章 定義封裝的類類型
5.1 C#類類型
5.2 類構(gòu)造函數(shù)
5.3 this關(guān)鍵字的作用
5.4 static關(guān)鍵字
5.5 定義OOP的支柱
5.6 C#訪問修飾符
5.7 第一個(gè)支柱:C#的封裝支持
5.8 常量數(shù)據(jù)
5.9 只讀字段
5.10 C#的分部類型
5.11 通過XML生成C#源代碼的文檔
5.12 查看勞動(dòng)成果
5.13 小結(jié)
第6章 繼承和多態(tài)
6.1 繼承的基本機(jī)制
6.2 回顧Visual Studio類關(guān)系圖
6.3 第二個(gè)支柱:繼承
6.4 包含/委托編程
6.5 第三個(gè)支柱:C#的多態(tài)支持
6.6 基類/派生類的轉(zhuǎn)換規(guī)則
6.7 超級(jí)父類:System.Object
6.8 小結(jié)
第7章 結(jié)構(gòu)化異常處理
7.1 錯(cuò)誤、bug與異?!?br>7.2 NET異常處理的作用
7.3 最簡(jiǎn)單的例子
7.4 配置異常的狀態(tài)
7.5 系統(tǒng)級(jí)異常(System.SystemException)
7.6 應(yīng)用程序級(jí)異常(System.ApplicationException)
7.7 處理多個(gè)異?!?br>7.8 finally塊
7.9 誰(shuí)在引發(fā)什么異常
7.10 未處理異常的后果
7.11 使用Visual Studio調(diào)試未處理的異?!?br>7.12 小結(jié)
第8章 對(duì)象的生命周期
8.1 類、對(duì)象和引用
8.2 對(duì)象生命周期的基礎(chǔ)
8.3 應(yīng)用程序根的作用
8.4 對(duì)象的代
8.5 System.GC類型
8.6 構(gòu)建可終結(jié)對(duì)象
8.7 構(gòu)建可處置對(duì)象
8.8 構(gòu)建可終結(jié)類型和可處置類型
8.9 小結(jié)
第三部分 C#高級(jí)編程結(jié)構(gòu)
第9章 接口
9.1 接口類型
9.2 定義自定義接口
9.3 實(shí)現(xiàn)接口
9.4 在對(duì)象級(jí)別調(diào)用接口成員
9.5 接口作為參數(shù)
9.6 接口作為返回值
9.7 接口類型數(shù)組
9.8 使用Visual Studio 2008實(shí)現(xiàn)接口
9.9 通過顯式接口實(shí)現(xiàn)解決命名沖突
9.10 定義接口層次結(jié)構(gòu)
9.11 構(gòu)建可枚舉類型(IEnumerable和IEnumerator)
9.12 構(gòu)建可克隆的對(duì)象(ICloneable)
9.13 構(gòu)建可比較的對(duì)象(IComparable)
9.14 回調(diào)接口
9.15 小結(jié)
第10章 集合與泛型
10.1 System.Collections命名空間的接口
10.2 System.Collections命名空間的類類型
10.3 System.Collections.Specialized命名空間
10.4 裝箱、拆箱以及和System.Object的關(guān)系
10.5 類型安全和強(qiáng)類型集合問題
10.6 System.Collections.Generic命名空間
10.7 創(chuàng)建自定義泛型方法
10.8 創(chuàng)建泛型結(jié)構(gòu)和類
10.9 創(chuàng)建自定義泛型集合
10.10 創(chuàng)建泛型基類
10.11 創(chuàng)建泛型接口
10.12 小結(jié)
第11章 委托、事件和Lambda
11.1 NET委托類型
11.2 使用C#定義委托
11.3 System.MulticastDelegate與System.Delegate基類
11.4 最簡(jiǎn)單的委托示例
11.5 使用委托改造Car類型
11.6 更復(fù)雜的委托示例
11.7 委托協(xié)變
11.8 創(chuàng)建泛型委托
11.9 C#事件
11.10 泛型EventHandlerT委托
11.11 C#匿名方法
11.12 方法組轉(zhuǎn)換
11.13 C# 3.0 Lambda運(yùn)算符
11.14 小結(jié)
第12章 索引器、運(yùn)算符和指針
12.1 索引器方法
12.2 運(yùn)算符重載
12.3 自定義類型轉(zhuǎn)換
12.4 指針類型
12.5 C#預(yù)處理指令
12.6 小結(jié)
第13章 C# 3.0的語(yǔ)言功能
13.1 隱式類型局部變量
13.2 自動(dòng)屬性
13.3 擴(kuò)展方法
13.4 分部方法
13.5 對(duì)象初始化器
13.6 匿名類型
13.7 小結(jié)
第14章 LINQ
14.1 LINQ的作用
14.2 LINQ查詢表達(dá)式初覽
14.3 LINQ和泛型集合
14.4 LINQ和非泛型集合
14.5 查詢運(yùn)算符的內(nèi)部表示
14.6 LINQ查詢運(yùn)算符
14.7 LINQ查詢
14.8 小結(jié)
第四部分 使用.NET程序集編程
第15章 .NET程序集入門
15.1 定義自定義命名空間
15.2 .NET程序集的作用
15.3 .NET程序集的格式
15.4 構(gòu)建和使用單文件程序集
15.5 構(gòu)建和使用多文件程序集
15.6 私有程序集
15.7 共享程序集
15.8 使用共享程序集
15.9 配置共享程序集
15.10 GAC的內(nèi)部結(jié)構(gòu)
15.11 發(fā)行者策略程序集
15.12 codeBase元素
15.13 System.Configuration命名空間
15.14 機(jī)器配置文件
15.15 小結(jié)
第16章 類型反射、晚期綁定和基于特性的編程
16.1 類型元數(shù)據(jù)的必要性
16.2 反射
16.3 構(gòu)建自定義的元數(shù)據(jù)查看器
16.4 動(dòng)態(tài)加載程序集
16.5 反射共享程序集
16.6 晚期綁定
16.7 特性編程
16.8 構(gòu)建自定義特性
16.9 程序集級(jí)別(和模塊級(jí)別)特性
16.10 使用早期綁定反射特性
16.11 使用晚期綁定反射特性
16.12 反射、晚期綁定和自定義特性的使用背景
16.13 構(gòu)建可擴(kuò)展的應(yīng)用程序
16.14 小結(jié)
第17章 進(jìn)程、應(yīng)用程序域和對(duì)象上下文
17.1 回顧傳統(tǒng)的Win32進(jìn)程
17.2 NET平臺(tái)下與進(jìn)程進(jìn)行交互
17.3 NET應(yīng)用程序域
17.4 對(duì)象上下文邊界
17.5 進(jìn)程、應(yīng)用程序域和上下文小結(jié)
17.6 小結(jié)
第18章 構(gòu)建多線程應(yīng)用程序
18.1 進(jìn)程、應(yīng)用程序域、上下文及線程之間的關(guān)系
18.2 NET委托的簡(jiǎn)短回顧
18.3 委托的異步性
18.4 異步調(diào)用方法
18.5 System.Threading命名空間
18.6 System.Threading.Thread類
18.7 以編程方式創(chuàng)建次線程
18.8 并發(fā)問題
18.9 使用Timer Callback編程
18.10 CLR線程池
18.11 BackgroundWorker組件的作用
18.12 小結(jié)
第19章 CIL和動(dòng)態(tài)程序集的作用
19.1 CIL編程的本質(zhì)
19.2 CIL指令、特性和操作碼
19.3 入棧和出棧:CIL基于棧的本質(zhì)
19.4 正反向工程
19.5 CIL指令和特性
19.6 NET基類庫(kù)、C#和CIL數(shù)據(jù)類型的映射
19.7 在CIL中定義成員
19.8 剖析CIL操作碼
19.9 使用CIL構(gòu)建.NET程序集
19.10 動(dòng)態(tài)程序集
19.11 小結(jié)
第五部分 .NET基類庫(kù)簡(jiǎn)介
第20章 文件輸入輸出和隔離存儲(chǔ)
20.1 研究System.IO命名空間
20.2 Directory(Info)和File(Info)類型
20.3 使用DirectoryInfo類型
20.4 使用Directory類型
20.5 使用DriveInfo類類型
20.6 使用FileInfo類
20.7 使用File類型 533
20.8 Stream抽象類 535
20.9 使用StreamWriter和StreamReader類型
20.10 使用StringWriter和StringReader
20.11 使用BinaryWriter和BinaryReader
20.12 以編程方式“觀察”文件
20.13 實(shí)現(xiàn)異步文件I/O操作
20.14 隔離存儲(chǔ)的作用
20.15 代碼訪問安全入門
20.16 隔離存儲(chǔ)概覽
20.17 使用IsolatedStorageFile獲取存儲(chǔ)
20.18 實(shí)戰(zhàn)隔離存儲(chǔ):ClickOnce部署
20.19 小結(jié)
第21章 對(duì)象序列化
21.1 對(duì)象序列化
21.2 為序列化配置對(duì)象
21.3 選擇序列化格式化程序
21.4 使用BinaryFormatter序列化對(duì)象
21.5 使用SoapFormatter序列化對(duì)象
21.6 使用XmlSerializer序列化對(duì)象
21.7 序列化對(duì)象集合
21.8 自定義序列化過程
21.9 小結(jié)
第22章 ADO.NET之一:連接層
22.1 ADO.NET高層次定義
22.2 ADO.NET的數(shù)據(jù)提供程序
22.3 其他的ADO.NET命名空間
22.4 System.Data命名空間的類型
22.5 使用接口抽象數(shù)據(jù)提供程序
22.6 創(chuàng)建AutoLot數(shù)據(jù)庫(kù)
22.7 ADO.NET 數(shù)據(jù)提供程序工廠模型
22.8 ADO.NET的連接式訪問
22.9 使用數(shù)據(jù)讀取器
22.10 構(gòu)建可重用的數(shù)據(jù)訪問庫(kù)
22.11 創(chuàng)建控制臺(tái)UI前端
22.12 使用SqlCommand進(jìn)行異步數(shù)據(jù)訪問
22.13 數(shù)據(jù)庫(kù)事務(wù)
22.14 小結(jié)
第23章 ADO.NET之二:斷開連接層
23.1 ADO.NET斷開連接層
23.2 DataSet的作用
23.3 使用DataColumn
23.4 使用DataRow
23.5 使用DataTable
23.6 將DataTable對(duì)象綁定到用戶界面
23.7 使用數(shù)據(jù)適配器填充DataSet/ DataTable
23.8 重訪AutoLotDAL.dll
23.9 切換多表DataSet對(duì)象
23.10 Visual Studio 2008的數(shù)據(jù)訪問工具
23.11 從UI層解耦自動(dòng)生成的代碼
23.12 小結(jié)
第24章 LINQ API編程
24.1 LINQ to ADO.NET的作用
24.2 使用LINQ to DataSet編程
24.3 使用LINQ to SQL編程
24.4 使用sqlmetal.exe生成實(shí)體類
24.5 使用Visual Studio 2008建立實(shí)體類
24.6 使用LINQ to XML操作XML文檔
24.7 在內(nèi)存文檔中導(dǎo)航
24.8 小結(jié)
第25章 WCF
25.1 各種分布式計(jì)算API
25.2 WCF的作用
25.3 WCF核心程序集
25.4 Visual Studio WCF項(xiàng)目模板
25.5 WCF應(yīng)用程序的基本構(gòu)成
25.6 WCF的ABC
25.7 構(gòu)建WCF服務(wù)
25.8 承載WCF服務(wù)
25.9 構(gòu)建WCF客戶端應(yīng)用程序
25.10 使用WCF服務(wù)庫(kù)項(xiàng)目模板
25.11 以Windows服務(wù)承載WCF服務(wù)
25.12 異步調(diào)用服務(wù)
25.13 定義WCF數(shù)據(jù)契約
25.14 小結(jié)
第26章 WF
26.1 定義業(yè)務(wù)流程
26.2 WF的構(gòu)建塊
26.3 WF程序集、命名空間和項(xiàng)
26.4 構(gòu)建一個(gè)啟用工作流的簡(jiǎn)單應(yīng)用
26.5 WF引擎承載代碼
26.6 在工作流中調(diào)用Web服務(wù)
26.7 構(gòu)建可重用的WF代碼庫(kù)
26.8 關(guān)于自定義活動(dòng)的簡(jiǎn)要說明
26.9 小結(jié)
第六部分 桌面用戶界面
第27章 Windows Forms編程
27.1 Windows Forms 命名空間
27.2 創(chuàng)建一個(gè)簡(jiǎn)單的Windows Forms 程序(不用IDE)
27.3 Visual Studio Windows Forms項(xiàng)目模板
27.4 剖析Form
27.5 響應(yīng)鼠標(biāo)活動(dòng)
27.6 響應(yīng)鍵盤活動(dòng)
27.7 設(shè)計(jì)對(duì)話框
27.8 通過GDI 呈現(xiàn)圖形數(shù)據(jù)
27.9 創(chuàng)建一個(gè)完整的Windows Forms應(yīng)用程序
27.10 小結(jié)
第28章 WPF和XAML
28.1 WPF背后的動(dòng)機(jī)
28.2 各種形式的WPF應(yīng)用程序
28.3 WPF程序集
28.4 創(chuàng)建(不使用XAML的)WPF應(yīng)用程序
28.5 Application類型的其他細(xì)節(jié)
28.6 Window類型的其他細(xì)節(jié)
28.7 構(gòu)建(XAML相關(guān)的)WPF應(yīng)用程序
28.8 將標(biāo)記轉(zhuǎn)換為.NET程序集
28.9 使用代碼隱藏文件實(shí)現(xiàn)的關(guān)注點(diǎn)的分離
28.10 XAML語(yǔ)法
28.11 使用Visual Studio 2008構(gòu)建WPF應(yīng)用程序
28.12 在運(yùn)行時(shí)處理XAML:SimpleXaml- Pad.exe
28.13 微軟Expression Blend的作用
28.14 小結(jié)
第29章 使用WPF控件編程
29.1 WPF控件庫(kù)概述
29.2 使用XAML聲明控件
29.3 依賴屬性的作用
29.4 路由事件
29.5 使用Button類型
29.6 使用CheckBoxe和RadioButton
29.7 使用ListBox和ComboBox類型
29.8 使用文本區(qū)
29.9 使用面板進(jìn)行內(nèi)容布局
29.10 使用嵌套面板創(chuàng)建窗口框架
29.11 WPF控件命令
29.12 WPF數(shù)據(jù)綁定模型
29.13 使用IValueConverter進(jìn)行數(shù)據(jù)轉(zhuǎn)換
29.14 綁定到自定義對(duì)象
29.15 將UI元素綁定到XML文檔
29.16 小結(jié)
第30章 WPF 2D圖形呈現(xiàn)、資源和主題
30.1 WPF圖形呈現(xiàn)服務(wù)
30.2 探究Shape派生類
30.3 使用WPF畫刷
30.4 使用WPF畫筆
30.5 探究Drawing派生類
30.6 UI變換的功能
30.7 WPF動(dòng)畫服務(wù)
30.8 WPF的資源體系
30.9 為WPF控件定義應(yīng)用樣式
30.10 使用模板改變控件的UI
30.11 小結(jié)
第七部分 使用ASP.NET構(gòu)建Web應(yīng)用程序
第31章 構(gòu)建ASP.NET網(wǎng)頁(yè)
31.1 HTTP的作用
31.2 Web應(yīng)用程序和Web服務(wù)
31.3 HTML的作用
31.4 客戶端腳本的作用
31.5 提交表單數(shù)據(jù)(GET和POST)
31.6 構(gòu)建傳統(tǒng)的ASP頁(yè)面
31.7 傳統(tǒng)ASP相關(guān)問題
31.8 ASP.NET命名空間
31.9 ASP.NET網(wǎng)頁(yè)代碼模型
31.10 ASP.NET站點(diǎn)目錄結(jié)構(gòu)細(xì)節(jié)
31.11 ASP.NET頁(yè)面編譯周期
31.12 頁(yè)面類型的繼承鏈
31.13 與傳入的HTTP請(qǐng)求交互
31.14 與輸出HTTP響應(yīng)交互
31.15 ASP.NET網(wǎng)頁(yè)的生命周期
31.16 Web.config文件的作用
31.17 小結(jié)
第32章 ASP.NET Web控件、主題和母版頁(yè)
32.1 Web控件的本質(zhì)
32.2 System.Web.UI.Control類型
32.3 System.Web.UI.WebControls.WebControl類型
32.4 ASP.NET Web控件的類別
32.5 構(gòu)建功能豐富的ASP.NET站點(diǎn)
32.6 驗(yàn)證控件的作用
32.7 使用主題
32.8 使用HTML表格布局控件
32.9 小結(jié)
第33章 ASP.NET狀態(tài)管理技術(shù)
33.1 狀態(tài)問題
33.2 ASP.NET狀態(tài)管理技術(shù)
33.3 ASP.NET視圖狀態(tài)的作用
33.4 Global.asax文件的作用
33.5 應(yīng)用程序狀態(tài)與會(huì)話狀態(tài)差別
33.6 使用應(yīng)用程序緩存
33.7 維護(hù)會(huì)話數(shù)據(jù)
33.8 cookie
33.9 sessionState元素的作用
33.10 ASP.NET用戶配置API
33.11 小結(jié)
第八部分 附錄
附錄A COM與.NET的互操作性
A.1 NET互操作的研究范圍
A.2 NET調(diào)用COM互操作的簡(jiǎn)單示例
A.3 NET互操作程序集
A.4 運(yùn)行庫(kù)可調(diào)用包裝
A.5 COM IDL的作用
A.6 使用類型庫(kù)創(chuàng)建互操作程序集
A.7 創(chuàng)建一個(gè)更復(fù)雜的COM服務(wù)
A.8 互操作程序集
A.9 在COM中使用.NET
A.10 CCW的作用
A.11 NET類接口的作用
A.12 構(gòu)建.NET類型
A.13 生成類型庫(kù)并注冊(cè).NET類型
A.14 導(dǎo)出類型信息
A.15 創(chuàng)建一個(gè)Visual Basic 6.0的測(cè)試客戶端
A.16 小結(jié)
附錄B 使用Mono進(jìn)行平臺(tái)無關(guān)的.NET開發(fā)
B.1 NET的平臺(tái)無關(guān)性
B.2 獲取和安裝Mono
B.3 Mono開發(fā)工具
B.4 使用Mono創(chuàng)建.NET應(yīng)用程序
B.5 推薦學(xué)習(xí)
B.6 小結(jié)
索引
封面圖: