国产免费无码又爽又刺激高潮_国产亚洲欧美在线人成aaaa_亚洲av永久无码精品尤物_专区久久五月天_国内精品久久人妻无码妲己影院

專題欄目:ARVRMR虛擬現(xiàn)實(shí)

《深入理解C#(第3版)》

書籍簡(jiǎn)介:

《深入理解C#(第3版)》是C#領(lǐng)域不可多得的經(jīng)典著作。作者在詳盡地展示C#各個(gè)知識(shí)點(diǎn)的同時(shí),更注重從現(xiàn)象中挖掘本質(zhì)?!渡钊肜斫釩#(第3版)》深入探索了C#的核心概念和經(jīng)典特性,并將這些特性融入到代碼中,讓讀者能夠真正領(lǐng)會(huì)到C#之“深入”與“精妙”。在第2版的基礎(chǔ)上,《深入理解C#(第3版)》新增了C# 5的新特性——異步,并更新了隨著技術(shù)的發(fā)展,已經(jīng)不再適用的內(nèi)容,確保整本書能達(dá)到讀者期望的高標(biāo)準(zhǔn)。

如果你略微了解一點(diǎn)C#,就可無(wú)障礙地閱讀《深入理解C#(第3版)》。

作者簡(jiǎn)介:

Jon Skeet

谷歌軟件工程師,微軟資深C# MVP,擁有10余年C#項(xiàng)目開發(fā)經(jīng)驗(yàn)。自2002年以來(lái),他一直是C#社區(qū)、新聞組、國(guó)際會(huì)議和Stack Overflow網(wǎng)站上非?;钴S的技術(shù)專家,回答了數(shù)以萬(wàn)計(jì)的C#和.NET相關(guān)問(wèn)題。

出版日期:

2014年04月

章節(jié)目錄:

第一部分 基礎(chǔ)知識(shí)
 第1章 C#開發(fā)的進(jìn)化史 
  1.1 從簡(jiǎn)單的數(shù)據(jù)類型開始 
  1.1.1 C# 1中定義的產(chǎn)品類型 
  1.1.2 C# 2中的強(qiáng)類型集合 
  1.1.3 C# 3中自動(dòng)實(shí)現(xiàn)的屬性 
  1.1.4 C# 4中的命名實(shí)參 
  1.2 排序和過(guò)濾 
  1.2.1 按名稱對(duì)產(chǎn)品進(jìn)行排序 
  1.2.2 查詢集合 
  1.3 處理未知數(shù)據(jù) 
  1.3.1 表示未知的價(jià)格 
  1.3.2 可選參數(shù)和默認(rèn)值 
  1.4 LINQ簡(jiǎn)介 
  1.4.1 查詢表達(dá)式和進(jìn)程內(nèi)查詢 
  1.4.2 查詢XML 
  1.4.3 LINQ to SQL 
  1.5 COM和動(dòng)態(tài)類型 
  1.5.1 簡(jiǎn)化COM互操作 
  1.5.2 與動(dòng)態(tài)語(yǔ)言互操作 
  1.6 輕松編寫異步代碼 
  1.7 剖析.NET平臺(tái) 
  1.7.1 C#語(yǔ)言 
  1.7.2 運(yùn)行時(shí) 
  1.7.3 框架庫(kù) 
  1.8 怎樣寫出超炫的代碼 
  1.8.1 采用代碼段形式的全能代碼 
  1.8.2 教學(xué)代碼不是產(chǎn)品代碼 
  1.8.3 你的新朋友:語(yǔ)言規(guī)范 
  1.9 小結(jié) 
 第2章 C# 1所搭建的核心基礎(chǔ) 
  2.1 委托 
  2.1.1 簡(jiǎn)單委托的構(gòu)成 
  2.1.2 合并和刪除委托 
  2.1.3 對(duì)事件的簡(jiǎn)單討論 
  2.1.4 委托總結(jié) 
  2.2 類型系統(tǒng)的特征 
  2.2.1 C#在類型系統(tǒng)世界中的位置 
  2.2.2 C# 1的類型系統(tǒng)何時(shí)不夠用 
  2.2.3 類型系統(tǒng)特征總結(jié) 
  2.3 值類型和引用類型 
  2.3.1 現(xiàn)實(shí)世界中的值和引用 
  2.3.2 值類型和引用類型基礎(chǔ)知識(shí) 
  2.3.3 走出誤區(qū) 
  2.3.4 裝箱和拆箱 
  2.3.5 值類型和引用類型小結(jié) 
  2.4 C# 1之外:構(gòu)建于堅(jiān)實(shí)基礎(chǔ)之上的新特性 
  2.4.1 與委托有關(guān)的特性 
  2.4.2 與類型系統(tǒng)有關(guān)的特性 
  2.4.3 與值類型有關(guān)的特性 
  2.5 小結(jié) 
第二部分 C# 2:解決C# 1的問(wèn)題
 第3章 用泛型實(shí)現(xiàn)參數(shù)化類型 
  3.1 為什么需要泛型 
  3.2 日常使用的簡(jiǎn)單泛型 
  3.2.1 通過(guò)例子來(lái)學(xué)習(xí):泛型字典 
  3.2.2 泛型類型和類型參數(shù) 
  3.2.3 泛型方法和判讀泛型聲明 
  3.3 深化與提高 
  3.3.1 類型約束 
  3.3.2 泛型方法類型實(shí)參的類型推斷 
  3.3.3 實(shí)現(xiàn)泛型 
  3.4 高級(jí)泛型 
  3.4.1 靜態(tài)字段和靜態(tài)構(gòu)造函數(shù) 
  3.4.2 JIT編譯器如何處理泛型 
  3.4.3 泛型迭代 
  3.4.4 反射和泛型 
  3.5 泛型在C#和其他語(yǔ)言中的限制 
  3.5.1 泛型可變性的缺乏 
  3.5.2 缺乏操作符約束或者“數(shù)值”約束 
  3.5.3 缺乏泛型屬性、索引器和其他成員類型 
  3.5.4 同C 模板的對(duì)比 
  3.5.5 和Java泛型的對(duì)比 
  3.6 小結(jié) 
 第4章 可空類型 
  4.1 沒(méi)有值時(shí)怎么辦 
  4.1.1 為什么值類型的變量不能是null 
  4.1.2 在C# 1中表示空值的模式 
  4.2 System.Nullable和System.Nullable 
  4.2.1 Nullable簡(jiǎn)介 
  4.2.2 Nullable裝箱和拆箱 
  4.2.3 Nullable實(shí)例的相等性 
  4.2.4 來(lái)自非泛型Nullable類的支持 
  4.3 C# 2為可空類型提供的語(yǔ)法糖 
  4.3.1 ?修飾符 
  4.3.2 使用null進(jìn)行賦值和比較 
  4.3.3 可空轉(zhuǎn)換和操作符 
  4.3.4 可空邏輯 
  4.3.5 對(duì)可空類型使用as操作符 
  4.3.6 空合并操作符 
  4.4 可空類型的新奇用法 
  4.4.1 嘗試一個(gè)不使用輸出參數(shù)的操作 
  4.4.2 空合并操作符讓比較不再痛苦 
  4.5 小結(jié) 
 第5章 進(jìn)入快速通道的委托 
  5.1 向笨拙的委托語(yǔ)法說(shuō)拜拜 
  5.2 方法組轉(zhuǎn)換 
  5.3 協(xié)變性和逆變性 
  5.3.1 委托參數(shù)的逆變性 
  5.3.2 委托返回類型的協(xié)變性 
  5.3.3 不兼容的風(fēng)險(xiǎn) 
  5.4 使用匿名方法的內(nèi)聯(lián)委托操作 
  5.4.1 從簡(jiǎn)單的開始:處理一個(gè)參數(shù) 
  5.4.2 匿名方法的返回值 
  5.4.3 忽略委托參數(shù) 
  5.5 匿名方法中的捕獲變量 
  5.5.1 定義閉包和不同類型的變量 
  5.5.2 捕獲變量的行為 
  5.5.3 捕獲變量到底有什么用處 
  5.5.4 捕獲變量的延長(zhǎng)生存期 
  5.5.5 局部變量實(shí)例化 
  5.5.6 共享和非共享的變量混合使用 
  5.5.7 捕獲變量的使用規(guī)則和小結(jié) 
  5.6 小結(jié) 
 第6章 實(shí)現(xiàn)迭代器的捷徑 
  6.1 C# 1:手寫迭代器的痛苦 
  6.2 C# 2:利用yield語(yǔ)句簡(jiǎn)化迭代器 
  6.2.1 迭代器塊和yield return簡(jiǎn)介 
  6.2.2 觀察迭代器的工作流程 
  6.2.3 進(jìn)一步了解迭代器執(zhí)行流程 
  6.2.4 具體實(shí)現(xiàn)中的奇特之處 
  6.3 真實(shí)的迭代器示例 
  6.3.1 迭代時(shí)刻表中的日期 
  6.3.2 迭代文件中的行 
  6.3.3 使用迭代器塊和謂詞對(duì)項(xiàng)進(jìn)行延遲過(guò)濾 
  6.4 使用CCR實(shí)現(xiàn)偽同步代碼 
  6.5 小結(jié) 
 第7章 結(jié)束C# 2的講解:最后的一些特性 
  7.1 分部類型 
  7.1.1 在多個(gè)文件中創(chuàng)建一個(gè)類型 
  7.1.2 分部類型的使用 
  7.1.3 C# 3獨(dú)有的分部方法 
  7.2 靜態(tài)類型 
  7.3 獨(dú)立的取值方法/賦值方法屬性訪問(wèn)器 
  7.4 命名空間別名 
  7.4.1 限定的命名空間別名 
  7.4.2 全局命名空間別名 
  7.4.3 外部別名 
  7.5 pragma指令 
  7.5.1 警告pragma 
  7.5.2 校驗(yàn)和pragma 
  7.6 非安全代碼中固定大小的緩沖區(qū) 
  7.7 把內(nèi)部成員暴露給選定的程序集 
  7.7.1 簡(jiǎn)單情況下的友元程序集 
  7.7.2 為什么使用Internals-VisibleTo 
  7.7.3 InternalsVisibleTo和簽名程序集 
  7.8 小結(jié) 
第三部分 C# 3:革新寫代碼的方式
 第8章 用智能的編譯器來(lái)防錯(cuò) 
  8.1 自動(dòng)實(shí)現(xiàn)的屬性 
  8.2 隱式類型的局部變量 
  8.2.1 用var聲明局部變量 
  8.2.2 隱式類型的限制 
  8.2.3 隱式類型的優(yōu)缺點(diǎn) 
  8.2.4 建議 
  8.3 簡(jiǎn)化的初始化 
  8.3.1 定義示例類型 
  8.3.2 設(shè)置簡(jiǎn)單屬性 
  8.3.3 為嵌入對(duì)象設(shè)置屬性 
  8.3.4 集合初始化程序 
  8.3.5 初始化特性的應(yīng)用 
  8.4 隱式類型的數(shù)組 
  8.5 匿名類型 
  8.5.1 第一次邂逅匿名類型 
  8.5.2 匿名類型的成員 
  8.5.3 投影初始化程序 
  8.5.4 重點(diǎn)何在 
  8.6 小結(jié) 
 第9章 Lambda表達(dá)式和表達(dá)式樹 
  9.1 作為委托的Lambda表達(dá)式 
  9.1.1 準(zhǔn)備工作:Func<...>委托類型簡(jiǎn)介 
  9.1.2 第一次轉(zhuǎn)換成Lambda表達(dá)式 
  9.1.3 用單一表達(dá)式作為主體 
  9.1.4 隱式類型的參數(shù)列表 
  9.1.5 單一參數(shù)的快捷語(yǔ)法 
  9.2 使用List和事件的簡(jiǎn)單例子 
  9.2.1 列表的過(guò)濾、排序和操作 
  9.2.2 在事件處理程序中進(jìn)行記錄 
  9.3 表達(dá)式樹 
  9.3.1 以編程方式構(gòu)建表達(dá)式樹 
  9.3.2 將表達(dá)式樹編譯成委托 
  9.3.3 將C# Lambda表達(dá)式轉(zhuǎn)換成表達(dá)式樹 
  9.3.4 位于LINQ核心的表達(dá)式樹 
  9.3.5 LINQ之外的表達(dá)式樹 
  9.4 類型推斷和重載決策的改變 
  9.4.1 改變的起因:精簡(jiǎn)泛型方法調(diào)用 
  9.4.2 推斷匿名函數(shù)的返回類型 
  9.4.3 分兩個(gè)階段進(jìn)行的類型推斷 
  9.4.4 選擇正確的被重載的方法 
  9.4.5 類型推斷和重載決策 
  9.5 小結(jié) 
 第10章 擴(kuò)展方法 
  10.1 未引入擴(kuò)展方法之前的狀態(tài) 
  10.2 擴(kuò)展方法的語(yǔ)法 
  10.2.1 聲明擴(kuò)展方法 
  10.2.2 調(diào)用擴(kuò)展方法 
  10.2.3 擴(kuò)展方法是怎樣被發(fā)現(xiàn)的 
  10.2.4 在空引用上調(diào)用方法 
  10.3?。甆ET 3.5中的擴(kuò)展方法 
  10.3.1 從Enumerable開始起步 
  10.3.2 用Where過(guò)濾并將方法調(diào)用鏈接到一起 
  10.3.3 插曲:似曾相識(shí)的Where方法 
  10.3.4 用Select方法和匿名類型進(jìn)行投影 
  10.3.5 用OrderBy方法進(jìn)行排序 
  10.3.6 涉及鏈接的實(shí)際例子 
  10.4 使用思路和原則 
  10.4.1 “擴(kuò)展世界”和使接口更豐富 
  10.4.2 流暢接口 
  10.4.3 理智使用擴(kuò)展方法 
  10.5 小結(jié) 
 第11章 查詢表達(dá)式和LINQ to Objects 
  11.1 LINQ介紹 
  11.1.1 LINQ中的基礎(chǔ)概念 
  11.1.2 定義示例數(shù)據(jù)模型 
  11.2 簡(jiǎn)單的開始:選擇元素 
  11.2.1 以數(shù)據(jù)源作為開始,以選擇作為結(jié)束 
  11.2.2 編譯器轉(zhuǎn)譯是查詢表達(dá)式基礎(chǔ)的轉(zhuǎn)譯 
  11.2.3 范圍變量和重要的投影 
  11.2.4 Cast、OfType和顯式類型的范圍變量 
  11.3 對(duì)序列進(jìn)行過(guò)濾和排序 
  11.3.1 使用where子句進(jìn)行過(guò)濾 
  11.3.2 退化的查詢表達(dá)式 
  11.3.3 使用orderby子句進(jìn)行排序 
  11.4 let子句和透明標(biāo)識(shí)符 
  11.4.1 用let來(lái)進(jìn)行中間計(jì)算 
  11.4.2 透明標(biāo)識(shí)符 
  11.5 連接 
  11.5.1 使用join子句的內(nèi)連接 
  11.5.2 使用join...into子句進(jìn)行分組連接 
  11.5.3 使用多個(gè)from子句進(jìn)行交叉連接和合并序列 
  11.6 分組和延續(xù) 
  11.6.1 使用group...by子句進(jìn)行分組 
  11.6.2 查詢延續(xù) 
  11.7 在查詢表達(dá)式和點(diǎn)標(biāo)記之間作出選擇 
  11.7.1 需要使用點(diǎn)標(biāo)記的操作 
  11.7.2 使用點(diǎn)標(biāo)記可能會(huì)更簡(jiǎn)單的查詢表達(dá)式 
  11.7.3 選擇查詢表達(dá)式 
  11.8 小結(jié) 
 第12章 超越集合的LINQ 
  12.1 使用LINQ to SQL查詢數(shù)據(jù)庫(kù) 
  12.1.1 數(shù)據(jù)庫(kù)和模型 
  12.1.2 用查詢表達(dá)式訪問(wèn)數(shù)據(jù)庫(kù) 
  12.1.3 包含連接的查詢 
  12.2 用IQueryable和IQueryProvider進(jìn)行轉(zhuǎn)換 
  12.2.1 IQueryable和相關(guān)接口的介紹 
  12.2.2 模擬接口實(shí)現(xiàn)來(lái)記錄調(diào)用 
  12.2.3 把表達(dá)式粘合在一起:Queryable的擴(kuò)展方法 
  12.2.4 模擬實(shí)際運(yùn)行的查詢提供器 
  12.2.5 包裝IQueryable 
  12.3 LINQ友好的API和LINQ to XML 
  12.3.1 LINQ to XML中的核心類型 
  12.3.2 聲明式構(gòu)造 
  12.3.3 查詢單個(gè)節(jié)點(diǎn) 
  12.3.4 合并查詢操作符 
  12.3.5 與LINQ和諧共處 
  12.4 用并行LINQ代替LINQ to Objects 
  12.4.1 在單線程中繪制曼德博羅特集 
  12.4.2 ParallelEnumerable、ParallelQuery和AsParallel 
  12.4.3 調(diào)整并行查詢 
  12.5 使用LINQ to Rx反轉(zhuǎn)查詢模型 
  12.5.1 IObservable和IObserver 
  12.5.2 簡(jiǎn)單的開始 
  12.5.3 查詢可觀察對(duì)象 
  12.5.4 意義何在 
  12.6 擴(kuò)展LINQ to Objects 
  12.6.1 設(shè)計(jì)和實(shí)現(xiàn)指南 
  12.6.2 示例擴(kuò)展:選擇隨機(jī)元素 
  12.7 小結(jié) 
第四部分 C# 4:良好的交互性
 第13章 簡(jiǎn)化代碼的微小修改 
  13.1 可選參數(shù)和命名實(shí)參 
  13.1.1 可選參數(shù) 
  13.1.2 命名實(shí)參 
  13.1.3 兩者相結(jié)合 
  13.2 改善COM互操作性 
  13.2.1 在C# 4之前操縱Word是十分恐怖的 
  13.2.2 可選參數(shù)和命名實(shí)參的復(fù)仇 
  13.2.3 按值傳遞ref參數(shù) 
  13.2.4 調(diào)用命名索引器 
  13.2.5 鏈接主互操作程序集 
  13.3 接口和委托的泛型可變性 
  13.3.1 可變性的種類:協(xié)變性和逆變性 
  13.3.2 在接口中使用可變性 
  13.3.3 在委托中使用可變性 
  13.3.4 復(fù)雜情況 
  13.3.5 限制和說(shuō)明 
  13.4 對(duì)鎖和字段風(fēng)格的事件的微小改變 
  13.4.1 健壯的鎖 
  13.4.2 字段風(fēng)格的事件 
  13.5 小結(jié) 
 第14章 靜態(tài)語(yǔ)言中的動(dòng)態(tài)綁定 
  14.1 何謂、何時(shí)、為何、如何 
  14.1.1 何謂動(dòng)態(tài)類型 
  14.1.2 動(dòng)態(tài)類型什么時(shí)候有用,為什么 
  14.1.3 C# 4如何提供動(dòng)態(tài)類型 
  14.2 關(guān)于動(dòng)態(tài)的快速指南 
  14.3 動(dòng)態(tài)類型示例 
  14.3.1 COM和Office 
  14.3.2 動(dòng)態(tài)語(yǔ)言 
  14.3.3 純托管代碼中的動(dòng)態(tài)類型 
  14.4 幕后原理 
  14.4.1 DLR簡(jiǎn)介 
  14.4.2 DLR核心概念 
  14.4.3 C#編譯器如何處理動(dòng)態(tài) 
  14.4.4 更加智能的C#編譯器 
  14.4.5 動(dòng)態(tài)代碼的約束 
  14.5 實(shí)現(xiàn)動(dòng)態(tài)行為 
  14.5.1 使用ExpandoObject 
  14.5.2 使用DynamicObject 
  14.5.3 實(shí)現(xiàn)IDynamicMetaObject-Provider 
  14.6 小結(jié) 
第五部分 C# 5:簡(jiǎn)化的異步編程
 第15章 使用async/await進(jìn)行異步編程 
  15.1 異步函數(shù)簡(jiǎn)介 
  15.1.1 初識(shí)異步類型 
  15.1.2 分解第一個(gè)示例 
  15.2 思考異步編程 
  15.2.1 異步執(zhí)行的基礎(chǔ) 
  15.2.2 異步方法 
  15.3 語(yǔ)法和語(yǔ)義 
  15.3.1 聲明異步方法 
  15.3.2 異步方法的返回類型 
  15.3.3 可等待模式 
  15.3.4 await表達(dá)式的流 
  15.3.5 從異步方法返回 
  15.3.6 異?!?br>  15.4 異步匿名函數(shù) 
  15.5 實(shí)現(xiàn)細(xì)節(jié):編譯器轉(zhuǎn)換 
  15.5.1 生成的代碼 
  15.5.2 骨架方法的結(jié)構(gòu) 
  15.5.3 狀態(tài)機(jī)的結(jié)構(gòu) 
  15.5.4 一個(gè)入口搞定一切 
  15.5.5 圍繞await表達(dá)式的控制 
  15.5.6 跟蹤棧 
  15.5.7 更多內(nèi)容 
  15.6 高效地使用async/await 
  15.6.1 基于任務(wù)的異步模式 
  15.6.2 組合異步操作 
  15.6.3 對(duì)異步代碼編寫單元測(cè)試 
  15.6.4 可等待模式的歸來(lái) 
  15.6.5 在WinRT中執(zhí)行異步操作 
  15.7 小結(jié) 
 第16章 C# 5附加特性和結(jié)束語(yǔ) 
  16.1 foreach循環(huán)中捕獲變量的變化 
  16.2 調(diào)用者信息特性 
  16.2.1 基本行為 
  16.2.2 日志 
  16.2.3 實(shí)現(xiàn)INotifyProperty-Changed 
  16.2.4 在非.NET 4.5環(huán)境下使用調(diào)用者信息特性 
  16.3 結(jié)束語(yǔ) 
  附錄A LINQ標(biāo)準(zhǔn)查詢操作符 
  附錄B?。甆ET中的泛型集合 
  附錄C 版本總結(jié)

封面圖:

發(fā)表評(píng)論

相關(guān)文章