出版時間:2009-2 出版社:人民郵電出版社 作者:納什 頁數(shù):444 譯者:劉新軍
Tag標(biāo)簽:無
前言
因?yàn)樵趯W(xué)校微軟技術(shù)俱樂部活動的緣故,C#Beta版一經(jīng)問世我就從微軟高校關(guān)系部拿到了試用版,并且在微軟的支持下俱樂部的一幫人一起做了幾個小項(xiàng)目。2003年10月,微軟全球副總裁JawadKhaki來北郵做講座,之后有人去索取簽名,一個哥們居然拿著一本Java編程思想》上去。結(jié)果Jawad大筆一揮在扉頁上寫下了幾個大字“c#isabetterJava”。這句話正是我當(dāng)時對c#的第一印象,可能也正反映了微軟對C撐的期望和當(dāng)時業(yè)界對C#的評價(jià)。 當(dāng)然微軟的雄心遠(yuǎn)不止于此,.NET才是它的戰(zhàn)略發(fā)展方向,C#只是推動這個發(fā)展的一個獨(dú)門武器。幾年來,微軟投入了大量的資源,把這款武器打造得越來越鋒利。隨著泛型、匿名方法、迭代器、分部類型/分部方法、LINQ、匿名類型、對象/集合初始化器、擴(kuò)展方法、Lambda表達(dá)式等一系列特性的逐步引入,C#儼然成為了特性最豐富的編程語言?! ∝S富的特性帶來了強(qiáng)大的功能和高效的開發(fā)效率,但與之相伴的副作用之一就是加陡了學(xué)習(xí)曲線。一件再好的武器,如果你不能透徹掌握其奧妙玄機(jī),后果將輕則浪費(fèi)寶物,重則誤傷自己。因此,除了會使手中的利器,找到一位好師父、覓得一本好寶典同樣非常重要?! ∧壳笆忻嫔嫌泻芏嚓P(guān)于C#的圖書,也有很多諸如《24小時學(xué)會XXX))、《輕松掌握XXX))的圖書。剛開始,我對出版社定下的本書中文書名——《C#捷徑教程》頗有微詞。不過,仔細(xì)一想,“捷徑”確實(shí)最貼切原書名中Accelerated的本意。學(xué)習(xí)原本沒有捷徑可走,但要在有限的時間內(nèi)取得最大的成效,還是有策略和方法的。本書的“捷徑”體現(xiàn)在以下兩個方面?! ?.以相對短的篇幅濃縮了C#的幾乎所有的精華,高屋建瓴,取精用弘。本書沒有糾纏于繁瑣的語法細(xì)節(jié)(有任何C/C++/Java語言背景的人都可以觸類旁通),也沒有涉及華麗的IDE操作與界面設(shè)計(jì)內(nèi)容(可以通過Tutorial或Help更方便地獲得),而是直接切入C#語言本身的精髓,讓你最直接地感受并掌握最激動人心的特性?! ?.以簡潔的語言與豐富的示例來講解各個特性,一針見血,酣暢淋漓。作者是位資深的程序員,因此本書的行文風(fēng)格都是基于程序員的角度和思維方式,使你在閱讀的過程中有一種心領(lǐng)神會的默契之感?! ‘?dāng)然,翻譯的過程沒有捷徑可走。本書的面世是許多人幫助與支持的結(jié)果?! 「兄x編輯陳興璐小姐。這是第二次與她合作。她一如既往地友善耐心、認(rèn)真負(fù)責(zé),保證了本書的按時按質(zhì)完成。 感謝楊軍、崔曉川、劉光強(qiáng)、李辛鶴、徐進(jìn)在翻譯過程中給予我的的幫助,他們的專業(yè)水平和中肯建議,使翻譯潤色不少。與他們的討論交流,也讓我受益匪淺?! 「兄x小顧同學(xué),忍受了我長達(dá)半年深居簡出的宅男生活:)。 由于時間倉促,水平有限,不足之處望各位同仁不吝賜教?! ∠M阍凇禖#捷徑教程》中找到學(xué)習(xí)C#的捷徑!
內(nèi)容概要
《Accelerated C#2008 C#捷徑教程》通過許多精彩的示例介紹了每個特性,深入淺出地講解了C# 語言的核心概念,以及如何聰明地應(yīng)用C# 的習(xí)慣用法和面向?qū)ο蟮脑O(shè)計(jì)模式來挖掘C# 和CLR 的能力。C# 3.0 提供了很多強(qiáng)大的特性,通過使用lambda 表達(dá)式、擴(kuò)展方法和語言集成查詢(LINQ),方便地引入了函數(shù)式編程,使C# 程序員如虎添翼?! 禔ccelerated C#2008 C#捷徑教程》適合有一定編程經(jīng)驗(yàn)的程序員閱讀。
作者簡介
TreyNash,知名.NET技術(shù)專家?,F(xiàn)于領(lǐng)先的無線設(shè)備提供商CSR公司擔(dān)任主任工程師。負(fù)責(zé)藍(lán)牙解決方案的開發(fā)。在轉(zhuǎn)向.NET平臺之前。他有豐富的COM,DCOM/ATL編程經(jīng)驗(yàn)。
書籍目錄
第1章 C#預(yù)覽1.1 C#和C++的區(qū)別1.1.1 C#1.1.2 C++1.1.3 CLR垃圾回收1.2 C#程序示例1.3 C# 2.0擴(kuò)展特性概述1.4 C# 3.0新特性概覽1.5 小結(jié)第2章 C#和CLR2.1 CLR中的JIT編譯器2.2 程序集及程序集加載器2.2.1 最小化程序的工作集2.2.2 給程序集命名2.2.3 加載程序集2.3 元數(shù)據(jù)2.4 交叉語言的兼容性2.5 小結(jié)第3章 C#語法概述3.1 C#是一門強(qiáng)類型的語言3.2 表達(dá)式3.3 語句和表達(dá)式3.4 類型和變量3.4.1 值類型3.4.2 引用類型3.4.3 默認(rèn)變量初始化3.4.4 隱式類型化局部變量3.4.5 類型轉(zhuǎn)換3.4.6 as和is操作符3.4.7 泛型3.5 命名空間3.5.1 定義命名空間3.5.2 使用命名空間3.6 控制流3.6.1 if-else、while、do-while和for3.6.2 switch3.6.3 foreach3.6.4 break、continue、goto、return和throw3.7 小結(jié)第4章 類、結(jié)構(gòu)和對象4.1 類定義4.1.1 字段4.1.2 構(gòu)造函數(shù)4.1.3 方法4.1.4 屬性4.1.5 封裝4.1.6 可訪問性4.1.7 接口4.1.8 繼承4.1.9 密封類4.1.10 抽象類4.1.11 嵌套類4.1.12 索引器4.1.13 分部類4.1.14 分部方法4.1.15 靜態(tài)類4.1.16 保留的成員名字4.2 值類型定義4.2.1 構(gòu)造函數(shù)4.2.2 this的含義4.2.3 終結(jié)器4.2.4 接口4.3 匿名類型4.4 對象初始化器4.5 裝箱和拆箱4.5.1 什么時候發(fā)生裝箱4.5.2 效率和混淆4.6 System.Object4.6.1 等同性及其意義4.6.2 IComparable接口4.7 創(chuàng)建對象4.7.1 new關(guān)鍵字4.7.2 字段初始化4.7.3 靜態(tài)(類)構(gòu)造函數(shù)4.7.4 實(shí)例構(gòu)造函數(shù)和創(chuàng)建順序4.8 銷毀對象4.8.1 終結(jié)器4.8.2 確定性的析構(gòu)4.8.3 異常處理4.9 可清除對象4.9.1 IDisposable接口4.9.2 using關(guān)鍵字4.10 方法參數(shù)類型4.10.1 值參數(shù)4.10.2 ref參數(shù)4.10.3 out參數(shù)4.10.4 參數(shù)數(shù)組4.11 方法重載4.12 繼承和虛方法4.12.1 虛方法和抽象方法4.12.2 override和new方法4.12.3 密封方法4.12.4 關(guān)于C#虛方法再啰嗦幾句4.13 繼承,包含和委托4.13.1 接口繼承和類繼承的選擇4.13.2 委托和組合與繼承4.14 小結(jié)第5章 接口和契約5.1 接口定義類型5.2 定義接口5.2.1 接口中可以有什么5.2.2 接口繼承與成員隱藏5.3 實(shí)現(xiàn)接口5.3.1 隱式接口實(shí)現(xiàn)5.3.2 顯式接口實(shí)現(xiàn)5.3.3 派生類中覆蓋接口實(shí)現(xiàn)5.3.4 小心值類型實(shí)現(xiàn)接口的副作用5.4 接口成員匹配規(guī)則5.5 值類型的顯示接口實(shí)現(xiàn)5.6 版本考慮5.7 契約5.7.1 類實(shí)現(xiàn)契約5.7.2 接口契約5.8 在接口和類之間選擇5.9 小結(jié)第6章 重載操作符6.1 只因?yàn)椋嚎梢圆⒉灰馕吨鴳?yīng)該6.2 重載操作符的類型和格式6.3 操作符不應(yīng)該改變其操作數(shù)6.4 參數(shù)順序有影響么6.5 重載加法運(yùn)算符6.6 可重載的操作符6.6.1 比較操作符6.6.2 轉(zhuǎn)換操作符6.6.3 布爾操作符6.7 小結(jié)第7章 異常處理和異常安全7.1 CLR如何對待異常7.2 C#里的異常處理機(jī)制7.2.1 拋出異常7.2.2 .NET 2.0開始的未處理異常的變化7.2.3 try語句語法預(yù)覽7.2.4 重新拋出異常和轉(zhuǎn)譯異常7.2.5 finally代碼塊拋出的異常7.2.6 終結(jié)器拋出的異常7.2.7 靜態(tài)構(gòu)造函數(shù)拋出的異常7.3 誰應(yīng)該處理異常7.4 避免使用異常來控制流程7.5 取得異常中立7.5.1 異常中立代碼的基本結(jié)構(gòu)7.5.2 受限執(zhí)行區(qū)域7.5.3 臨界終結(jié)器和SafeHandle7.6 創(chuàng)建定制的異常類7.7 使用分配的資源和異常7.8 提供回滾行為7.9 小結(jié)第8章 使用字符串8.1 字符串概述8.2 字符串字面量8.3 格式指定和全球化8.3.1 Object.ToString、IFormattable和CultureInfo8.3.2 創(chuàng)建和注冊自定義CultureInfo類型8.3.3 格式化字符串8.3.4 Console.WriteLine和String. Format8.3.5 自定義類型的字符串格式化舉例8.3.6 ICustomFormatter8.3.7 字符串比較8.4 處理來自外部的字符串8.5 StringBuilder8.6 使用正則表達(dá)式搜索字符串8.6.1 使用正則表達(dá)式搜索8.6.2 搜索和分組8.6.3 使用正則表達(dá)式替換文本8.6.4 正則表達(dá)式創(chuàng)建選項(xiàng)8.7 小結(jié)第9章 數(shù)組、容器類型和迭代器9.1 數(shù)組介紹9.1.1 隱式類型化數(shù)組9.1.2 類型的轉(zhuǎn)換和協(xié)方差9.1.3 排序和搜索9.1.4 同步9.1.5 向量與數(shù)組9.2 多維矩形數(shù)組9.3 多維鋸齒數(shù)組9.4 容器類型9.4.1 比較ICollectionT和ICollection9.4.2 容器同步9.4.3 列表9.4.4 字典9.4.5 集合9.4.6 System.Collections.ObjectModel9.4.7 效率9.5 IEnumerableT、IEnumeratorT、IEnumerable和IEnumerator9.6 迭代器9.7 容器初始化器9.8 小結(jié)第10章 委托,匿名方法和事件10.1 委托概覽10.2 委托的創(chuàng)建和使用10.2.1 單委托10.2.2 委托鏈10.2.3 迭代委托鏈10.2.4 非綁定(公開實(shí)例)的委托10.3 事件10.4 匿名方法10.4.1 注意捕獲變量的使用10.4.2 匿名方法作為委托參數(shù)綁定器10.5 Strategy模式10.6 小結(jié)第11章 泛型11.1 泛型和C++模板之間的區(qū)別11.2 泛型的效率和類型安全11.3 泛型的類型定義和構(gòu)造類型11.3.1 泛型類和結(jié)構(gòu)11.3.2 泛型接口11.3.3 泛型方法11.3.4 泛型委托11.3.5 泛型轉(zhuǎn)換11.3.6 默認(rèn)值表達(dá)式11.3.7 Nullable類型11.3.8 構(gòu)造類型訪問權(quán)限控制11.3.9 泛型和繼承11.4 約束11.5 泛型系統(tǒng)容器11.6 泛型系統(tǒng)接口11.7 精選的問題和解決方案11.7.1 泛型類型中的轉(zhuǎn)化和操作符11.7.2 動態(tài)地創(chuàng)建構(gòu)造類型11.8 小結(jié)第12章 C#中的線程12.1 C#和.NET中的線程12.1.1 開始線程編程12.1.2 IOU模式和異步方法調(diào)用12.1.3 線程狀態(tài)12.1.4 終止線程12.1.5 停止和喚醒休眠線程12.1.6 等待線程退出12.1.7 前臺和后臺線程12.1.8 線程本地存儲12.1.9 非托管線程和COM套件如何適應(yīng)12.2 線程間同步工作12.2.1 用Interlocked類實(shí)現(xiàn)輕量級的同步12.2.2 Monitor類12.2.3 鎖對象12.2.4 信號量12.2.5 事件12.2.6 Win32的同步對象和WaitHandle12.3 使用線程池12.3.1 異步方法調(diào)用12.3.2 定時器12.4 小結(jié)第13章 C#規(guī)范形式探索13.1 引用類型的規(guī)范形式13.1.1 類默認(rèn)是密封的13.1.2 使用非虛擬接口模式13.1.3 對象是否可克隆13.1.4 對象是否可清除13.1.5 對象需要終結(jié)器嗎13.1.6 對象相等意味著什么13.1.7 如果重寫了Equals方法,那么也應(yīng)該重寫GetHashCode方法13.1.8 對象支持排序嗎13.1.9 對象需要形式化顯示嗎13.1.10 對象可以被轉(zhuǎn)換嗎13.1.11 在所有情況下都保證類型安全13.1.12 使用非可變的引用類型13.2 值類型的規(guī)范形式13.2.1 為了獲得更好的性能而重寫Equals方法13.2.2 值類型需要支持接口嗎13.2.3 將接口成員和派生方法實(shí)現(xiàn)為類型安全的形式13.3 小結(jié)13.3.1 引用類型的檢查單13.3.2 值類型的檢查單第14章 擴(kuò)展方法14.1 擴(kuò)展方法介紹14.1.1 編譯器如何發(fā)現(xiàn)擴(kuò)展方法14.1.2 探究內(nèi)部實(shí)現(xiàn)14.1.3 代碼易讀性與代碼易懂性14.2 使用建議14.2.1 考慮擴(kuò)展方法優(yōu)先于繼承14.2.2 分離的命名空間中的隔離擴(kuò)展方法14.2.3 修改一個類型的契約可能會打破擴(kuò)展方法14.3 轉(zhuǎn)換14.4 鏈?zhǔn)讲僮?4.5 自定義迭代器14.6 訪問者模式14.7 小結(jié)第15章 lambda表達(dá)式15.1 lambda表達(dá)式介紹15.1.1 lambda表達(dá)式15.1.2 lambda語句15.2 表達(dá)式樹15.2.1 對表達(dá)式的操作15.2.2 函數(shù)的數(shù)據(jù)表現(xiàn)15.3 lambda表達(dá)式的有益應(yīng)用15.3.1 迭代器和生成器重訪問15.3.2 閉包(變量捕獲)和緩存15.3.3 currying15.3.4 匿名遞歸15.4 小結(jié)第16章 LINQ:語言集成查詢 16.1 連接數(shù)據(jù)的橋梁 16.1.1 查詢表達(dá)式 16.1.2 再談擴(kuò)展方法和lambda表達(dá)式16.2 標(biāo)準(zhǔn)查詢操作符16.3 C#查詢關(guān)鍵字 16.3.1 from子句和范圍變量 16.3.2 join子句 16.3.3 where子句和過濾器 16.3.4 orderby子句 16.3.5 select子句和投影 16.3.6 let子句 16.3.7 group子句 16.3.8 into子句和持續(xù)性 16.4 偷懶的好處 16.4.1 C#迭代器鼓勵懶惰 16.4.2 不能偷懶 16.4.3 立即執(zhí)行查詢 16.4.4 再談表達(dá)式樹16.5 函數(shù)式編程中的技術(shù)16.5.1 自定義標(biāo)準(zhǔn)查詢操作符和延遲求值 16.5.2 替換foreach語句16.6 小結(jié)
章節(jié)摘錄
第1章 C#預(yù)覽 1.4 C#3.0新特性概覽 C#3.0包括一些很好的新特性。大部分新特性是支持語言集成查詢(Language Integrated Query,LINQ)的基石。然而,即使在LINQ的范圍外單獨(dú)使用,它們也非常有用。其中的太部分特性使程序員使用函數(shù)式編程技術(shù)更容易?! ⊥ㄟ^使用新的關(guān)鍵字var,C#現(xiàn)在支持隱式的類型化局部變量。需要注意的是,這些變量不是無類型的,它們的類型是編譯時推斷出的。這點(diǎn)在第3章作介紹?! ∧闶欠裨雱?chuàng)建一個簡單類型來保存有關(guān)數(shù)據(jù),但又煩惱于需要創(chuàng)建整個新類?在很多情況下,新支持的匿名類型幫你減輕了這個負(fù)擔(dān)。使用匿名類型可以在一個復(fù)合語句中定義并實(shí)例化一個類型。匿名類型將在第4章進(jìn)行介紹?! ∽詣訉?shí)現(xiàn)的屬性(auto-implementedproperty)是另一個有用的新特性,它為我們省去了打字的麻煩,減少了引入bug的可能性。多少次你曾為保存一點(diǎn)數(shù)據(jù)而聲明一個類,然后疲于為這些數(shù)據(jù)創(chuàng)建屬性訪問函數(shù)?畢竟,這樣做符合良好封裝的實(shí)踐。謝天謝地,自動實(shí)現(xiàn)的屬性極大地減少了定義屬性的輸入量。第4章將介紹自動實(shí)現(xiàn)屬性的技術(shù)細(xì)節(jié)。
媒體關(guān)注與評論
“作者的C#造詣極深,而且善于引導(dǎo)讀者在輕松愉快的氛圍中學(xué)習(xí)C#的特性。通過學(xué)習(xí)此書內(nèi)容,你的C#水平必將今非昔比。” ——Wes dyer,微軟C#開發(fā)小組成員 “我讀過不下100本.NET方面的書,自己也寫過幾本書,但是此書精彩絕倫,遠(yuǎn)遠(yuǎn)超出我的預(yù)期。強(qiáng)烈推薦!” ——William Ryan,微軟MVP
編輯推薦
如果你已經(jīng)有一定C#或者其他語言的編程經(jīng)驗(yàn),就完全不用去讀那些膚淺的入門書或者冗長繁復(fù)的大部頭?!禔ccelerated C#2008 C#捷徑教程》將為你提供一條快速掌握C#的捷徑?! ∽髡咴诓淮蟮钠锶菁{了豐富扎實(shí)的內(nèi)容,不僅全面涵蓋了C#的語言特性,包括3.O引入的Lambda表達(dá)式、擴(kuò)展方法和LlNQ等,總結(jié)了正確使用C#的習(xí)慣用法和設(shè)計(jì)模式。而且深入探討了CLR。書中大量富于啟發(fā)性的實(shí)例和經(jīng)驗(yàn)之談。更能讓你的軟件開發(fā)水平得到質(zhì)的飛躍?! 『迷u如潮的C#實(shí)戰(zhàn)圖書 汲取.N ET技術(shù)精髓的捷徑 專章講述習(xí)慣用法與設(shè)計(jì)模式
圖書封面
圖書標(biāo)簽Tags
無
評論、評分、閱讀與下載