深入解析C#

出版時(shí)間:201005  出版社:人民郵電出版社  作者:Jon Skeet  頁(yè)數(shù):333  譯者:周靖,朱永光等  
Tag標(biāo)簽:無(wú)  

前言

世上有兩類鋼琴家。一類鋼琴家彈琴并不是因?yàn)樗麄兿矚g,而是因?yàn)樗麄兊母改笍?qiáng)迫他們上鋼琴課。另一類鋼琴家彈琴是因?yàn)樗麄兿矚g音樂,想創(chuàng)作音樂。他們不需要被強(qiáng)迫,相反,他們時(shí)常忘記什么時(shí)候要停下來(lái)。后一類人中,有人是把彈鋼琴當(dāng)作一種愛好。而另一些人則是為了生活,因此更需要投入、技巧和天賦。他們有一定的靈活性來(lái)選擇彈奏時(shí)的音樂流派和風(fēng)格,不過這些選擇主要還是由雇主的需要或者聽眾的口味來(lái)決定的。后一類人中,有人主要就是為了錢,但也有一些專業(yè)人士即便沒有報(bào)酬,也愿意在公共場(chǎng)合彈奏鋼琴。他們喜歡運(yùn)用自己的技巧和天賦為別人演奏音樂。在這個(gè)過程中,他們能找到許多樂趣。如果同時(shí)還有報(bào)酬,當(dāng)然更是錦上添花。后一類人中,有人是自學(xué)成材的,他們演奏樂曲是不看譜的。這些人有極高的天賦和能力,但除非通過音樂本身,否則無(wú)法向別人傳遞那種直觀的感受。還有一些人無(wú)論在理論還是實(shí)踐上都經(jīng)過了正統(tǒng)的訓(xùn)練,他們能清楚地理解作曲家是用什么手法得到預(yù)期的情緒效果,并相應(yīng)地改進(jìn)自己的演繹手法。后一類人中,有人從來(lái)沒有打開鋼琴看它的內(nèi)部構(gòu)造。還有一些人則對(duì)鋼琴的發(fā)聲原理感到好奇不已,最后發(fā)現(xiàn)是由于杠桿裝置和絞盤在音錘敲擊琴弦前的瞬間,牽引制音器的擒縱器,他們?yōu)榕靼子?000~10000個(gè)運(yùn)動(dòng)機(jī)件組成的這個(gè)樂器裝置而感到高興和自豪。后一類人中,有人會(huì)對(duì)自己的手藝和成就心滿意足,對(duì)它們帶來(lái)的心靈上的愉悅和經(jīng)濟(jì)上的收入感到非常滿意。但是,還有一些人不僅僅是藝術(shù)家、理論家和技師,他們會(huì)抽時(shí)間以導(dǎo)師的身份,將那些知識(shí)傳授給其他人。我不知道Jon Skeet是哪一類鋼琴家。但是,我與這位微軟C拌MVP有多年的電子郵件交流,并經(jīng)??此牟┛?。我本人至少3遍逐字讀完他的這本書,我清楚地知道Jon是后一種軟件開發(fā)者:熱情、博學(xué)、天資極高、有好奇心以及善于分析——是其他人的好老師。C#是一種極為實(shí)用和快速發(fā)展的語(yǔ)言。通過添加查詢能力、更豐富的類型推斷、精簡(jiǎn)的匿名函數(shù)語(yǔ)法,等等,一種全新風(fēng)格的編程語(yǔ)言已出現(xiàn)在我們的面前。與此同時(shí),它代表的仍然是一種靜態(tài)類型的、面向組件的開發(fā)方式,C#取得成功的立足之本沒有變。

內(nèi)容概要

  《深入解析C#》是針對(duì)那些想提高編程技能的C#開發(fā)人員而作。《深入解析C#》的一個(gè)基本原則是側(cè)重于從現(xiàn)象中挖掘本質(zhì),而不是簡(jiǎn)單羅列C#的每個(gè)知識(shí)點(diǎn)。如果你就是喜歡探索本源的人,那么《深入解析C#》正適合你。作者深入探索了嶄新的C#2和3特性及其核心概念,并將新特性融入C#代碼中,這使《深入解析C#》更獨(dú)具匠心。《深入解析C#》適合各層次.NET開發(fā)人員閱讀。

作者簡(jiǎn)介

作者:(美國(guó))斯基特(Jon Skeet) 譯者:周靖 朱永光

書籍目錄

第一部分 基礎(chǔ)知識(shí)第1章 C#開發(fā)的進(jìn)化史 1.1 實(shí)戰(zhàn)演變:變化的代碼 1.1.1 定義產(chǎn)品類型 1.1.2 按名稱對(duì)產(chǎn)品進(jìn)行排序 1.1.3 查詢集合 1.1.4 表示未知的價(jià)格 1.1.5 LINQ和查詢表達(dá)式 1.2 C#(及相關(guān)技術(shù))簡(jiǎn)史 1.2.1 C#問世前的世界 1.2.2 C#和.NET降生 1.2.3 .NET 1.1的小幅更新和第一次重要跨越:.NET 2.01.2.4 “下一代”產(chǎn)品 1.2.5 歷史回顧和爭(zhēng)奪開發(fā)者之戰(zhàn) 1.3 .NET平臺(tái) 221.3.1 區(qū)分語(yǔ)言、運(yùn)行時(shí)和庫(kù) 1.3.2 解開版本號(hào)的謎團(tuán) 1.4 采用代碼段形式的全能代碼 1.4.1 代碼段及其擴(kuò)展形式 1.4.2 Snippy介紹 1.5 小結(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 C# 1的類型系統(tǒng)在什么時(shí)候會(huì)礙事 2.2.4 類型系統(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# 2和3:構(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的問題第3章 用泛型實(shí)現(xiàn)參數(shù)化類型 3.1 為什么需要泛型 3.2 日常使用的簡(jiǎn)單泛型 3.2.1 通過例子來(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 .NET 2.0中的泛型集合類 3.5.1 List[T] 3.5.2 Dictionary[TKey,TValue] 3.5.3 Queue[T]和Stack[T] 3.5.4 SortedList[TKey,TValue]和SortedDictionary[TKey,TValue] 3.5.5 LinkedList[T] 3.6 泛型在C#和其他語(yǔ)言中的限制 3.6.1 協(xié)變性和逆變性的缺乏 3.6.2 缺乏操作符約束或者“數(shù)值”約束 3.6.3 缺乏泛型屬性、索引器和其他成員類型 3.6.4 同C++模板的對(duì)比 3.6.5 和Java泛型的對(duì)比 3.7 小結(jié) 第4章 可空類型 4.1 沒有值時(shí)怎么辦 4.1.1 為什么值類型的變量不能是null 4.1.2 在C# 1中表示空值的模式 4.2 System.Nullable[T]和System.Nullable 4.2.1 Nullable[T]簡(jiǎn)介 4.2.2 裝箱和拆箱 4.2.3 Nullable[T]實(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 空接合操作符 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.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 測(cè)試被捕獲的變量的行為 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.3 真實(shí)的例子:迭代范圍值 6.3.1 迭代時(shí)刻表中的日期 6.3.2 定義Range類的作用域 6.3.3 使用迭代器塊的實(shí)現(xiàn)代碼 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ú)立的取值方法/賦值方法屬性訪問器 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 為什么使用InternalsVisibleTo 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 用一個(gè)簡(jiǎn)單表達(dá)式作為主體 9.1.4 隱式類型的參數(shù)列表 9.1.5 單一參數(shù)的快捷語(yǔ)法9.2 使用List[T]和事件的簡(jiǎn)單例子 9.2.1 對(duì)列表進(jìn)行篩選、排序并設(shè)置其他操作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.4 類型推斷和重載決策發(fā)生的改變 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 .NET 3.5中的擴(kuò)展方法 10.3.1 從Enumerable開始起步 10.3.2 用Where篩選并將方法調(diào)用鏈接到一起10.3.3 用Select方法和匿名類型進(jìn)行投影10.3.4 用OrderBy方法進(jìn)行排序 10.3.5 涉及鏈接的實(shí)際例子10.4 使用思路和原則 10.4.1 “擴(kuò)展世界”和使接口更豐富 10.4.2 流暢接口 10.4.3 理智使用擴(kuò)展方法10.5 小結(jié) 第11章 查詢表達(dá)式和LINQ to Object 11.1 LINQ介紹 11.1.1 這個(gè)名稱中有什么 11.1.2 LINQ中的基礎(chǔ)概念 11.1.3 定義示例數(shù)據(jù)模型11.2 簡(jiǎn)單的開始:選擇元素 11.2.1 以數(shù)據(jù)源作為開始,以選擇作為結(jié)束 11.2.2 作為查詢表達(dá)式基礎(chǔ)的編譯器轉(zhuǎn)換 11.2.3 范圍變量和重要的投影 11.2.4 Cast、OfType和顯式類型的范圍變量 11.3 對(duì)序列進(jìn)行過濾和排序11.3.1 使用where子句進(jìn)行過濾 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.5 聯(lián)接 11.5.1 使用join子句的內(nèi)聯(lián)接 11.5.2 使用join...into子句進(jìn)行分組聯(lián)接 11.5.3 使用多個(gè)from子句進(jìn)行交叉聯(lián)接 11.6 分組和延續(xù)11.6.1 使用group...by子句進(jìn)行分組 11.6.2 查詢延續(xù) 11.7 小結(jié) 第12章 超越集合的LINQ12.1 LINQ to SQL 12.1.1 創(chuàng)建缺陷數(shù)據(jù)庫(kù)和實(shí)體 12.1.2 用示例數(shù)據(jù)填充數(shù)據(jù)庫(kù) 12.1.3 用查詢表達(dá)式訪問數(shù)據(jù)庫(kù) 12.1.4 更新數(shù)據(jù)庫(kù) 12.1.5 LINQ to SQL小結(jié) 12.2 用IQueryable和IQueryProvider進(jìn)行轉(zhuǎn)換 12.2.1 IQueryable[T]和相關(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 to DataSet 12.3.1 處理非類型化數(shù)據(jù)集 12.3.2 處理類型化數(shù)據(jù)集 12.4 LINQ to XML 12.4.1 XElement和XAttribute 12.4.2 把示例缺陷數(shù)據(jù)轉(zhuǎn)換為XML12.4.3 在LINQ to XML中進(jìn)行查詢 12.4.4 LINQ to XML小結(jié)12.5 超越.NET 3.5的LINQ 12.5.1 第三方LINQ 12.5.2 未來(lái)的微軟LINQ技術(shù)12.6 小結(jié) 第13章 新時(shí)代的優(yōu)雅代碼 13.1 語(yǔ)言特性 13.1.1 更重視函數(shù)化 13.1.2 靜態(tài)、動(dòng)態(tài)、隱式、顯式或混合 13.2 把委托作為實(shí)現(xiàn)繼承的新方式 13.3 易讀的結(jié)果高于實(shí)現(xiàn) 13.4 并行宇宙中的生活 13.5 再見 附錄A LINQ標(biāo)準(zhǔn)查詢操作符

章節(jié)摘錄

C#2于2005年11月作為.NET 2.0的一部分發(fā)布,同時(shí)發(fā)布的還有Visual Studio 2005和VB8。Visual Studio作為一個(gè)IDE,變得更富有成效—特別是它終于包含了“重構(gòu)”功能。除此之外,語(yǔ)言和平臺(tái)的大幅改進(jìn)得到了大多數(shù)開發(fā)者的熱烈歡迎。為了說(shuō)明世界的變化有多快以及產(chǎn)品實(shí)際上市要多長(zhǎng)的時(shí)間 ——請(qǐng)注意第一次宣布C#3是在C≠}2發(fā)布之前的兩個(gè)月,也就是在2005年9月的微軟PDC上。但悲哀的是,雖然貌似只需2年,一個(gè)產(chǎn)品就能完成“從宣布到上市”的過程,但整個(gè)行業(yè)至少要花費(fèi)額外的1年或2年的時(shí)間才能廣泛地采納它。前面已經(jīng)說(shuō)過,許多公司只是從.NET 1.1遷移到了2.0。在此,我們只能祝愿.NET 3.0和3.5能在更短的時(shí)間里被廣泛采納(c#3與.NET3.5是一起出現(xiàn)的,但在面向.NET 2.0平臺(tái)開發(fā)軟件時(shí),C#3的許多特性都是可以使用的。稍后就會(huì)講到版本號(hào)的問題)。.NET2.0這么晚問世是由于它要嵌入到SQL Server2005中。所以,必須在健壯性和可靠性①上大費(fèi)一番周折,否則無(wú)法與這樣的一個(gè)系統(tǒng)完美地配合。這樣一來(lái),.NET代碼就能直接在數(shù)據(jù)庫(kù)中執(zhí)行,并可以使用更豐富的、與數(shù)據(jù)更“貼近”的邏輯。從事數(shù)據(jù)庫(kù)方面工作的人對(duì)此可能會(huì)持相當(dāng)謹(jǐn)慎的態(tài)度,也只有時(shí)間才能告訴我們這個(gè)功能會(huì)被多少人接受。但是,如果你真的需要它時(shí),會(huì)發(fā)現(xiàn)它確實(shí)是一個(gè)很強(qiáng)大的工具。1.2.4  “下一代”產(chǎn)品2006年11月(.NET 2.0發(fā)布后一年),微軟公司發(fā)布了Windows Vista、Office 2007和Exchange Server2007。同時(shí)發(fā)布的還有.NET 3.0,并預(yù)裝到Vista上。基于兩方面的原因,這為.NET客戶端應(yīng)用程序的推廣提供了幫助。首先,“不是所有計(jì)算機(jī)都安裝了.NET”這個(gè)老生常談的反對(duì)理由可以不必理會(huì)了,可以放心地認(rèn)為假如用戶運(yùn)行的是Vista,就能運(yùn)行.NETI_立用程序。其次,WPF(Windows PresentationFoundation)是微軟公司為開發(fā)者選擇的富客戶端平臺(tái),它現(xiàn)在只能在.NET上使用。同樣,在微軟公司忙活Vista和其他產(chǎn)品時(shí),世界上的其他地方也在發(fā)生著革新。輕量級(jí)框架(1ightweight framework)開始獲得發(fā)展的動(dòng)力,而ORM(Obiect RelmionMMapping)受到了開發(fā)者的廣泛關(guān)注,其部分原因是由于高質(zhì)量的免費(fèi)框架(如Hibernate)。LrNQto SQL的功能遠(yuǎn)比我們目前看到的多(目前只接觸了它的數(shù)據(jù)查詢能力),這標(biāo)志著微軟公司在這個(gè)領(lǐng)域的動(dòng)作不會(huì)再像以前那樣“蜻蜒點(diǎn)水”了(如當(dāng)年ObjectSapces)。相反,這標(biāo)志著微軟公司在這個(gè)領(lǐng)域邁出了非常堅(jiān)定的一步。只有時(shí)間才能告訴我們I,INQ to SQL(或者它的表親ADO.NET Entity Framework)是不是真的能使數(shù)據(jù)庫(kù)訪問變得簡(jiǎn)單——雖然他們肯定會(huì)這樣承諾。

媒體關(guān)注與評(píng)論

“如果你想學(xué)好C#。那么一定要把本書買回家。  ——Amazon.com“偽行家只能用令人費(fèi)解的專業(yè)術(shù)語(yǔ)和抽象的比喻來(lái)解釋復(fù)雜的主題。而真正的行家能夠用通俗易懂的語(yǔ)言和形象生動(dòng)的比喻來(lái)講解復(fù)雜的概念,本書的作者是真正的行家。”  ——Amazon.com

編輯推薦

《深入解析C#》圖靈程序設(shè)計(jì)叢書?!渡钊虢馕鯟#》是世界級(jí)頂尖技術(shù)專家“十年磨一劍”的經(jīng)典之作。在C#和.NET業(yè)界享有極高的聲譽(yù)。與其他泛泛介紹C#的書籍不同?!渡钊虢馕鯟#》深度探究C#2和3的新增特性。并結(jié)合技術(shù)發(fā)展,引領(lǐng)讀者深入C#的時(shí)空。作者從語(yǔ)言設(shè)計(jì)的動(dòng)機(jī)出發(fā)。介紹支持這些特性的語(yǔ)言的核心概念。書中將新的語(yǔ)言特性放在C#語(yǔ)言發(fā)展的背景之上。用極富實(shí)際意義的示例,向讀者展示寫代碼和設(shè)計(jì)解決方案的最佳方式。同時(shí)作者將多年的C#開發(fā)經(jīng)驗(yàn)與讀者分享,讀者可咀其精華、免走彎路。使程序設(shè)計(jì)水平更上一層樓。Jon Skeet資深C#MVP。經(jīng)驗(yàn)豐富的C#項(xiàng)目開發(fā)人員,有近10年的C#項(xiàng)目開發(fā)經(jīng)驗(yàn)。他是C#社區(qū)以及新聞組中非?;钴S的技術(shù)專家?;卮鹆藬?shù)以萬(wàn)計(jì)的C#和.NET相關(guān)問題。同時(shí)他還在其個(gè)人網(wǎng)站上寫文章來(lái)闡述C#和.NET最難理解的方面。除《深入解析C#》外。他還是暢銷書GroovyiinAction的作者。資深C# MVP扛鼎之作、深入解析,探求本源、亞馬遜網(wǎng)上書店全五星評(píng)價(jià)。

圖書封面

圖書標(biāo)簽Tags

無(wú)

評(píng)論、評(píng)分、閱讀與下載


    深入解析C# PDF格式下載


用戶評(píng)論 (總計(jì)1條)

 
 

  •   講2.0 到 4.0 的特性做了一個(gè)詳細(xì)的介紹,感覺比紅皮書系列精煉,頁(yè)數(shù)雖然不多,但是能看出是有真東西的。對(duì)我的幫助非常大。
 

250萬(wàn)本中文圖書簡(jiǎn)介、評(píng)論、評(píng)分,PDF格式免費(fèi)下載。 第一圖書網(wǎng) 手機(jī)版

京ICP備13047387號(hào)-7