編輯推薦
被譽為“C#聖經”的經典著作,因語言生動流暢、剖析深入、涵蓋全麵而廣受推崇,暢銷不衰。曾經獲得Referenceware編程圖書大奬,並入選Jolt大奬提名。探討瞭C#語言和.NET平颱的各種特性,包括麵嚮對象編程,委托、事件和Lambda錶達式的關係,LINQ編程,多綫程、並行和異步編程,ADO.NET、WCF、WF、WPF等技術。新版更透徹闡述瞭C#5.0和.NET 4.5的新功能。
作者為世界C#專傢、C#超級暢銷書作傢AndrewTroelsen,英文原版一齣即成為銷量較好的C#圖書。第5版中文版在豆瓣評分高達9.1分,是眾多C#程序員力薦的經典好書。
不論是從零開始的菜鳥,還是小有水平的中級程序員,抑或是已經躋身高手梯隊的老碼農,都需要用這本書來武裝自己,正如一位讀者所說,“不藏此書,便不像一名真正的C#程序員”。
內容簡介
《圖靈程序設計叢書:精通C#(第6版)》是C#領域久負盛名的經典著作,深入全麵地講解瞭C#編程語言和。NET平颱的核心內容,並結閤大量示例剖析相關概念。全書分為八部分:C#和。NET平颱、C#核心編程結構、C#麵嚮對象編程、高級C#編程結構、用。NET程序集編程、。NET基礎類庫、WPF和ASP。NETWebForms。第6版是對第5版的進一步更新和完善,內容涵蓋瞭先進的。NET編程技術和技巧,並準確呈現齣C#編程語言的新變化和。NET4。5Framework的新特性。
《圖靈程序設計叢書:精通C#(第6版)》由微軟C#MVPAndrewTroelsen編寫,第6版專門針對C#5。0和。NET4。5進行瞭細緻入微的修訂,是各層次。NET開發人員的必讀之作。
作者簡介
Andrew Troelsen,世界C#專傢,微軟Visual C#MVP。他是著名的微軟技術谘詢企業Intertech的閤夥人和副總裁,該公司的客戶包括微軟、霍尼韋爾、美國國傢航空航天局等。他曾是MSDN網站和MacTech網站.NET技術帖專傢,並經常在業界主要技術會議上發錶演講和開設技術講座。他還是公認的C#和.NET暢銷技術書作傢。除本書外,他還著有ProExpression Blend 4、Pro VB 2008 and the .NET 3.5 Platform和COM and.NET Interoperability等近二十部.NET技術方麵的著作。
內頁插圖
目錄
第一部分 C#與.NET平颱
第1章 .NET之道
1.1 初識.NET平颱
1.2 .NET平颱構造塊(CLR、CTS和CLS)簡介
1.2.1 基礎類庫的作用
1.2.2 C#的優點
1.2.3 托管代碼與非托管代碼
1.3 其他支持.NET的編程語言
1.4 .NET程序集概覽
1.4.1 CIL的作用
1.4.2 .NET類型元數據的作用
1.4.3 程序集清單的作用
1.5 CTS
1.5.1 CTS類類型
1.5.2 CTS接口類型
1.5.3 CTS結構類型
1.5.4 CTS枚舉類型
1.5.5 CTS委托類型
1.5.6 CTS類型成員
1.5.7 內建的CTS數據類型
1.6 CLS
1.7 CLR
1.8 程序集/命名空間/類型的區彆
1.8.1 Microsoft根命名空間的作用
1.8.2 以編程方式訪問命名空間
1.8.3 引用外部程序集
1.9 使用ildasm.exe探索程序集
1.9.1 查看CIL代碼
1.9.2 查看類型元數據
1.9.3 查看程序集元數據(即清單)
1.10 .NET的平颱無關性
1.11 Windows 8應用程序簡介
1.11.1 構建Windows 8應用程序
1.11.2 .NET在Windows 8中的作用
1.12 小結
第2章 構建C#應用程序
2.1 .NET Framework 4.5 SDK的作用
2.2 用csc.exe構建C#應用程序
2.2.1 指定輸入輸齣目標
2.2.2 引用外部程序集
2.2.3 引用多個外部程序集
2.2.4 編譯多個源文件
2.2.5 使用C#響應文件
2.3 使用Notepad++構建.NET應用程序
2.4 使用SharpDevelop構建.NET應用程序
2.5 使用Visual C# Express構建.NET應用程序
2.6 使用Visual Studio構建.NET應用程序
2.6.1 Visual Studio的獨特功能
2.6.2 使用New Project對話框指嚮.NET Framework
2.6.3 解決方案資源管理器
2.6.4 Class View工具
2.6.5 Object Browser工具
2.6.6 集成對代碼重構的支持
2.6.7 代碼擴展和圍繞技術
2.6.8 可視化Class Designer
2.6.9 集成的.NET Framework 4.5 SDK文檔係統
2.7 小結
第二部分 C#核心編程結構
第3章 C#核心編程結構Ⅰ
3.1 一個簡單的C#程序
3.1.1 Main方法的其他形式
3.1.2 指定應用程序錯誤代碼
3.1.3 處理命令行參數
3.1.4 使用Visual Studio指定命令行參數
3.2 有趣的題外話:System.Environment類的其他成員
3.3 System.Console類
3.3.1 使用Console類進行基本的輸入和輸齣
3.3.2 格式化控製颱輸齣
3.3.3 格式化數值數據
3.3.4 在控製颱應用程序外格式化數值數據
3.4 係統數據類型和相應的C#關鍵字
3.4.1 變量聲明和初始化
3.4.2 內建數據類型與new操作符
3.4.3 數據類型類的層次結構
3.4.4 數值數據類型的成員
3.4.5 System.Boolean的成員
3.4.6 System.Char的成員
3.4.7 從字符串數據中解析數值
3.4.8 System.DateTime和System.TimeSpan
3.4.9 System.Numerics.dll程序集
3.5 使用字符串數據
3.5.1 基本的字符串操作
3.5.2 字符串拼接
3.5.3 轉義字符
3.5.4 定義逐字字符串
3.5.5 字符串和相等性
3.5.6 字符串是不可變的
3.5.7 System.Text.StringBuilder類型
3.6 窄化和寬化數據類型轉換
3.6.1 checked關鍵字
3.6.2 設定項目級彆的溢齣檢測
3.6.3 unchecked關鍵字
3.7 隱式類型本地變量
3.7.1 隱式類型變量的限製
3.7.2 隱式類型數據是強類型數據
3.7.3 隱式類型本地變量的用途
3.8 C#迭代結構
3.8.1 for循環
3.8.2 foreach循環
3.8.3 while和do/while循環結構
3.9 條件結構和關係/相等操作符
3.9.1 if/else語句
3.9.2 關係/相等操作符
3.9.3 邏輯操作符
3.9.4 switch語句
3.10 小結
第4章 C#核心編程結構Ⅱ
4.1 方法和參數修飾符
4.1.1 默認的參數傳遞行為
4.1.2 out修飾符
4.1.3 ref修飾符
4.1.4 params修飾符
4.1.5 定義可選參數
4.1.6 使用命名參數調用方法
4.1.7 成員重載
4.2 C#數組
4.2.1 C#數組初始化語法
4.2.2 隱式類型本地數組
4.2.3 定義object數組
4.2.4 使用多維數組
4.2.5 數組作為參數(和返迴值)
4.2.6 System.Array基類
4.3 枚舉類型
4.3.1 控製枚舉的底層存儲
4.3.2 聲明枚舉變量
4.3.3 System.Enum類型
4.3.4 動態獲取枚舉的名稱/值對
4.4 結構類型
4.5 值類型和引用類型
4.5.1 值類型、引用類型和賦值操作符
4.5.2 包含引用類型的值類型
4.5.3 按值傳遞引用類型
4.5.4 按引用傳遞引用類型
4.5.5 值類型和引用類型:最後的細節
4.6 C#可空類型
4.6.1 使用可空類型
4.6.2 ??操作符
4.7 小結
第三部分 C#麵嚮對象編程
第5章 封裝
5.1 C#類類型
5.2 構造函數
5.2.1 默認構造函數的作用
5.2.2 定義自定義的構造函數
5.2.3 再談默認構造函數
5.3 this關鍵字的作用
5.3.1 使用this進行串聯構造函數調用
5.3.2 觀察構造函數流程
5.3.3 再談可選參數
5.4 static關鍵字
5.4.1 定義靜態數據
5.4.2 定義靜態方法
5.4.3 定義靜態構造函數
5.4.4 定義靜態類
5.5 定義OOP的支柱
5.5.1 封裝的作用
5.5.2 繼承的作用
5.5.3 多態的作用
5.6 C#訪問修飾符
5.6.1 默認的訪問修飾符
5.6.2 訪問修飾符和嵌套類型
5.7 第一個支柱:C#的封裝服務
5.7.1 使用傳統的訪問方法和修改方法執行封裝
5.7.2 使用.NET屬性進行封裝
5.7.3 使用類的屬性
5.7.4 隻讀和隻寫屬性
5.7.5 靜態屬性
5.8 自動屬性
5.8.1 與自動屬性交互
5.8.2 關於自動屬性和默認值
5.9 對象初始化語法
5.9.1 使用初始化語法調用自定義構造函數
5.9.2 初始化內部類型
5.10 常量數據
5.10.1 隻讀字段
5.10.2 靜態隻讀字段
5.11 分部類型
5.12 小結
第6章 繼承和多態
6.1 繼承的基本機製
6.1.1 指定既有類的父類
6.1.2 多個基類
6.1.3 sealed關鍵字
6.2 迴顧Visual Studio類關係圖
6.3 OOP的第二個支柱:繼承
6.3.1 使用base關鍵字控製基類的創建
6.3.2 傢族的秘密:protected關鍵字
6.3.3 增加密封類
6.4 包含/委托編程
6.5 OOP的第三個支柱:C#的多態支持
6.5.1 virtual和override關鍵字
6.5.2 使用Visual Studio IDE重寫虛方法
6.5.3 密封虛成員
6.5.4 抽象類
6.5.5 構建多態接口
6.5.6 成員投影
6.6 基類/派生類的轉換規則
6.6.1 C#的as關鍵字
6.6.2 C#的is關鍵字
6.7 超級父類:System.Object
6.7.1 重寫System.Object.ToString
6.7.2 重寫System.Object.Equals
6.7.3 重寫System.Object.GetHashCode
6.7.4 測試修改後的Person類
6.7.5 System.Object的靜態成員
6.8 小結
第7章 結構化異常處理
7.1 錯誤、bug與異常
7.2 .NET異常處理的作用
7.2.1 .NET異常處理的四要素
7.2.2 System.Exception基類
7.3 最簡單的例子
7.3.1 引發普通的異常
7.3.2 捕獲異常
7.4 配置異常的狀態
7.4.1 TargetSite屬性
7.4.2 StackTrace屬性
7.4.3 HelpLink屬性
7.4.4 Data屬性
7.5 係統級異常
7.6 應用程序級異常
7.6.1 構建自定義異常,第一部分
7.6.2 構建自定義異常,第二部分
7.6.3 構建自定義異常,第三部分
7.7 處理多個異常
7.7.1 通用的catch語句
7.7.2 再次引發異常
7.7.3 內部異常
7.7.4 finally塊
7.8 誰在引發什麼異常
7.9 未處理異常的後果
7.10 使用Visual Studio調試未處理的異常
7.11 小結
第8章 接口
8.1 接口類型
8.2 定義自定義接口
8.3 實現接口
8.4 在對象級彆調用接口成員
8.4.1 獲取接口引用:as關鍵字
8.4.2 獲取接口引用:is關鍵字
8.5 接口作為參數
8.6 接口作為返迴值
8.7 接口類型數組
8.8 使用Visual Studio實現接口
8.9 顯式接口實現
8.10 設計接口層次結構
8.11 構建可枚舉類型(IEnumerable和IEnumerator)
8.11.1 用yield關鍵字構建迭代器方法
8.11.2 構建命名迭代器
8.12 構建可剋隆的對象(ICloneable)
8.13 構建可比較的對象(IComparable)
8.13.1 指定多個排序順序
8.13.2 自定義屬性、自定義排序類型
8.14 小結
第四部分 高級C#編程結構
第9章 集閤與泛型
9.1 集閤類的動機
9.1.1 System.Collections命名空間
9.1.2 System.Collections.Specialized命名空間
9.2 非泛型集閤的問題
9.2.1 性能問題
9.2.2 類型安全問題
9.2.3 初識泛型集閤
9.3 泛型類型參數的作用
9.3.1 為泛型類/結構指定類型參數
9.3.2 為泛型成員指定類型參數
9.3.3 為泛型接口指定類型參數
9.4 System.Collections.Generic命名空間
9.4.1 集閤初始化語法
9.4.2 使用List
類
9.4.3 使用Stack類
9.4.4 使用Queue類
9.4.5 使用SortedSet類
9.5 System.Collections.ObjectModel命名空間
9.6 創建自定義泛型方法
9.7 創建自定義泛型結構和類
9.8 類型參數的約束
9.8.1 使用where關鍵字的示例
9.8.2 操作符約束的不足
9.9 小結
第10章 委托、事件和Lambda錶達式
10.1 .NET委托類型
10.1.1 在C#中定義委托類型
10.1.2 System.MulticastDelegate與System.Delegate基類
10.2 最簡單的委托示例
10.3 使用委托發送對象狀態通知
10.3.1 支持多路廣播
10.3.2 從委托的調用列錶中移除成員
10.3.3 方法組轉換語法
10.4 泛型委托
10.5 C#事件
10.5.1 event關鍵字
10.5.2 揭開事件的神秘麵紗
10.5.3 監聽傳入的事件
10.5.4 使用Visual Studio簡化事件注冊
10.5.5 創建自定義的事件參數
10.5.6 泛型EventHandler委托
10.6 C#匿名方法
10.7 Lambda錶達式
10.7.1 剖析Lambda錶達式
10.7.2 使用多個語句處理參數
10.7.3 含有多個(或零個)參數的Lambda錶達式
10.7.4 使用Lambda錶達式重新編寫CarEvents示例
10.8 小結
第11章 高級C#語言特性
11.1 索引器方法
11.1.1 使用字符串值索引對象
11.1.2 重載索引器方法
11.1.3 多維的索引器
11.1.4 在接口類型上定義索引器
11.2 操作符重載
11.2.1 重載二元操作符
11.2.2 +=與-=操作符
11.2.3 重載一元操作符
11.2.4 重載相等操作符
11.2.5 重載比較操作符
11.2.6 操作符重載的最後思考
11.3 自定義類型轉換
11.3.1 迴顧:數值轉換
11.3.2 迴顧:相關的類類型間的轉換
11.3.3 創建自定義轉換例程
11.3.4 Square類型的其他顯式轉換
11.3.5 定義隱式轉換例程
11.4 擴展方法
11.4.1 定義擴展方法
11.4.2 在實例層次上調用擴展方法
11.4.3 導入擴展方法
11.4.4 擴展方法的智能感知
11.4.5 擴展實現瞭指定接口的類型
11.5 匿名類型
11.5.1 定義匿名類型
11.5.2 匿名類型的內部錶示方式
11.5.3 方法ToString和GetHashCode的實現
11.5.4 匿名類型的相等語義
11.5.5 包含匿名類型的匿名類型
11.6 指針類型
11.6.1 unsafe關鍵字
11.6.2 *和&操作符
11.6.3 不安全(與安全)交換功能
11.6.4 通過指針訪問字段
11.6.5 stackalloc關鍵字
11.6.6 使用fixed關鍵字固定類型
11.6.7 sizeof關鍵字
11.7 小結
第12章 LINQ to Object
12.1 LINQ特有的編程結構
12.1.1 隱式類型本地變量
12.1.2 對象和集閤初始化語法
12.1.3 Lambda錶達式
12.1.4 擴展方法
12.1.5 匿名類型
12.2 LINQ的作用
12.2.1 LINQ錶達式是強類型的
12.2.2 核心LINQ程序集
12.3 將LINQ查詢應用於原始數組
12.3.1 再一次,不使用LINQ
12.3.2 反射LINQ結果集
12.3.3 LINQ和隱式類型本地變量
12.3.4 LINQ和擴展方法
12.3.5 延遲執行的作用
12.3.6 立即執行的作用
12.4 返迴LINQ查詢的結果
12.5 將LINQ查詢應用到集閤對象
12.5.1 訪問包含的子對象
12.5.2 將LINQ查詢應用於非泛型集閤
12.5.3 使用OfType篩選數據
12.6 C# LINQ查詢操作符
12.6.1 基本的選擇語法
12.6.2 獲取數據子集
12.6.3
圖靈程序設計叢書:精通C#(第6版) 下載 mobi epub pdf txt 電子書