C#捷徑教程

出版時(shí)間:2009-2  出版社:人民郵電出版社  作者:納什  頁(yè)數(shù):444  譯者:劉新軍  
Tag標(biāo)簽:無(wú)  

前言

  因?yàn)樵趯W(xué)校微軟技術(shù)俱樂(lè)部活動(dòng)的緣故,C#Beta版一經(jīng)問(wèn)世我就從微軟高校關(guān)系部拿到了試用版,并且在微軟的支持下俱樂(lè)部的一幫人一起做了幾個(gè)小項(xiàng)目。2003年10月,微軟全球副總裁JawadKhaki來(lái)北郵做講座,之后有人去索取簽名,一個(gè)哥們居然拿著一本Java編程思想》上去。結(jié)果Jawad大筆一揮在扉頁(yè)上寫(xiě)下了幾個(gè)大字“c#isabetterJava”。這句話正是我當(dāng)時(shí)對(duì)c#的第一印象,可能也正反映了微軟對(duì)C撐的期望和當(dāng)時(shí)業(yè)界對(duì)C#的評(píng)價(jià)?! ‘?dāng)然微軟的雄心遠(yuǎn)不止于此,.NET才是它的戰(zhàn)略發(fā)展方向,C#只是推動(dòng)這個(gè)發(fā)展的一個(gè)獨(dú)門(mén)武器。幾年來(lái),微軟投入了大量的資源,把這款武器打造得越來(lái)越鋒利。隨著泛型、匿名方法、迭代器、分部類(lèi)型/分部方法、LINQ、匿名類(lèi)型、對(duì)象/集合初始化器、擴(kuò)展方法、Lambda表達(dá)式等一系列特性的逐步引入,C#儼然成為了特性最豐富的編程語(yǔ)言。  豐富的特性帶來(lái)了強(qiáng)大的功能和高效的開(kāi)發(fā)效率,但與之相伴的副作用之一就是加陡了學(xué)習(xí)曲線。一件再好的武器,如果你不能透徹掌握其奧妙玄機(jī),后果將輕則浪費(fèi)寶物,重則誤傷自己。因此,除了會(huì)使手中的利器,找到一位好師父、覓得一本好寶典同樣非常重要。  目前市面上有很多關(guān)于C#的圖書(shū),也有很多諸如《24小時(shí)學(xué)會(huì)XXX))、《輕松掌握XXX))的圖書(shū)。剛開(kāi)始,我對(duì)出版社定下的本書(shū)中文書(shū)名——《C#捷徑教程》頗有微詞。不過(guò),仔細(xì)一想,“捷徑”確實(shí)最貼切原書(shū)名中Accelerated的本意。學(xué)習(xí)原本沒(méi)有捷徑可走,但要在有限的時(shí)間內(nèi)取得最大的成效,還是有策略和方法的。本書(shū)的“捷徑”體現(xiàn)在以下兩個(gè)方面。  1.以相對(duì)短的篇幅濃縮了C#的幾乎所有的精華,高屋建瓴,取精用弘。本書(shū)沒(méi)有糾纏于繁瑣的語(yǔ)法細(xì)節(jié)(有任何C/C++/Java語(yǔ)言背景的人都可以觸類(lèi)旁通),也沒(méi)有涉及華麗的IDE操作與界面設(shè)計(jì)內(nèi)容(可以通過(guò)Tutorial或Help更方便地獲得),而是直接切入C#語(yǔ)言本身的精髓,讓你最直接地感受并掌握最激動(dòng)人心的特性。  2.以簡(jiǎn)潔的語(yǔ)言與豐富的示例來(lái)講解各個(gè)特性,一針見(jiàn)血,酣暢淋漓。作者是位資深的程序員,因此本書(shū)的行文風(fēng)格都是基于程序員的角度和思維方式,使你在閱讀的過(guò)程中有一種心領(lǐng)神會(huì)的默契之感。  當(dāng)然,翻譯的過(guò)程沒(méi)有捷徑可走。本書(shū)的面世是許多人幫助與支持的結(jié)果。  感謝編輯陳興璐小姐。這是第二次與她合作。她一如既往地友善耐心、認(rèn)真負(fù)責(zé),保證了本書(shū)的按時(shí)按質(zhì)完成?! 「兄x楊軍、崔曉川、劉光強(qiáng)、李辛鶴、徐進(jìn)在翻譯過(guò)程中給予我的的幫助,他們的專(zhuān)業(yè)水平和中肯建議,使翻譯潤(rùn)色不少。與他們的討論交流,也讓我受益匪淺?! 「兄x小顧同學(xué),忍受了我長(zhǎng)達(dá)半年深居簡(jiǎn)出的宅男生活:)?! ∮捎跁r(shí)間倉(cāng)促,水平有限,不足之處望各位同仁不吝賜教?! ∠M阍凇禖#捷徑教程》中找到學(xué)習(xí)C#的捷徑!

內(nèi)容概要

  《Accelerated C#2008 C#捷徑教程》通過(guò)許多精彩的示例介紹了每個(gè)特性,深入淺出地講解了C# 語(yǔ)言的核心概念,以及如何聰明地應(yīng)用C# 的習(xí)慣用法和面向?qū)ο蟮脑O(shè)計(jì)模式來(lái)挖掘C# 和CLR 的能力。C# 3.0 提供了很多強(qiáng)大的特性,通過(guò)使用lambda 表達(dá)式、擴(kuò)展方法和語(yǔ)言集成查詢(xún)(LINQ),方便地引入了函數(shù)式編程,使C# 程序員如虎添翼?!  禔ccelerated C#2008 C#捷徑教程》適合有一定編程經(jīng)驗(yàn)的程序員閱讀。

作者簡(jiǎn)介

  TreyNash,知名.NET技術(shù)專(zhuān)家。現(xiàn)于領(lǐng)先的無(wú)線設(shè)備提供商CSR公司擔(dān)任主任工程師。負(fù)責(zé)藍(lán)牙解決方案的開(kāi)發(fā)。在轉(zhuǎn)向.NET平臺(tái)之前。他有豐富的COM,DCOM/ATL編程經(jīng)驗(yàn)。

書(shū)籍目錄

第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 交叉語(yǔ)言的兼容性2.5 小結(jié)第3章 C#語(yǔ)法概述3.1 C#是一門(mén)強(qiáng)類(lèi)型的語(yǔ)言3.2 表達(dá)式3.3 語(yǔ)句和表達(dá)式3.4 類(lèi)型和變量3.4.1 值類(lèi)型3.4.2 引用類(lèi)型3.4.3 默認(rèn)變量初始化3.4.4 隱式類(lèi)型化局部變量3.4.5 類(lèi)型轉(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章 類(lèi)、結(jié)構(gòu)和對(duì)象4.1 類(lèi)定義4.1.1 字段4.1.2 構(gòu)造函數(shù)4.1.3 方法4.1.4 屬性4.1.5 封裝4.1.6 可訪問(wèn)性4.1.7 接口4.1.8 繼承4.1.9 密封類(lèi)4.1.10 抽象類(lèi)4.1.11 嵌套類(lèi)4.1.12 索引器4.1.13 分部類(lèi)4.1.14 分部方法4.1.15 靜態(tài)類(lèi)4.1.16 保留的成員名字4.2 值類(lèi)型定義4.2.1 構(gòu)造函數(shù)4.2.2 this的含義4.2.3 終結(jié)器4.2.4 接口4.3 匿名類(lèi)型4.4 對(duì)象初始化器4.5 裝箱和拆箱4.5.1 什么時(shí)候發(fā)生裝箱4.5.2 效率和混淆4.6 System.Object4.6.1 等同性及其意義4.6.2 IComparable接口4.7 創(chuàng)建對(duì)象4.7.1 new關(guān)鍵字4.7.2 字段初始化4.7.3 靜態(tài)(類(lèi))構(gòu)造函數(shù)4.7.4 實(shí)例構(gòu)造函數(shù)和創(chuàng)建順序4.8 銷(xiāo)毀對(duì)象4.8.1 終結(jié)器4.8.2 確定性的析構(gòu)4.8.3 異常處理4.9 可清除對(duì)象4.9.1 IDisposable接口4.9.2 using關(guān)鍵字4.10 方法參數(shù)類(lèi)型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 接口繼承和類(lèi)繼承的選擇4.13.2 委托和組合與繼承4.14 小結(jié)第5章 接口和契約5.1 接口定義類(lèi)型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 派生類(lèi)中覆蓋接口實(shí)現(xiàn)5.3.4 小心值類(lèi)型實(shí)現(xiàn)接口的副作用5.4 接口成員匹配規(guī)則5.5 值類(lèi)型的顯示接口實(shí)現(xiàn)5.6 版本考慮5.7 契約5.7.1 類(lèi)實(shí)現(xiàn)契約5.7.2 接口契約5.8 在接口和類(lèi)之間選擇5.9 小結(jié)第6章 重載操作符6.1 只因?yàn)椋嚎梢圆⒉灰馕吨鴳?yīng)該6.2 重載操作符的類(lèi)型和格式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如何對(duì)待異常7.2 C#里的異常處理機(jī)制7.2.1 拋出異常7.2.2 .NET 2.0開(kāi)始的未處理異常的變化7.2.3 try語(yǔ)句語(yǔ)法預(yù)覽7.2.4 重新拋出異常和轉(zhuǎn)譯異常7.2.5 finally代碼塊拋出的異常7.2.6 終結(jié)器拋出的異常7.2.7 靜態(tài)構(gòu)造函數(shù)拋出的異常7.3 誰(shuí)應(yīng)該處理異常7.4 避免使用異常來(lái)控制流程7.5 取得異常中立7.5.1 異常中立代碼的基本結(jié)構(gòu)7.5.2 受限執(zhí)行區(qū)域7.5.3 臨界終結(jié)器和SafeHandle7.6 創(chuàng)建定制的異常類(lèi)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)建和注冊(cè)自定義CultureInfo類(lèi)型8.3.3 格式化字符串8.3.4 Console.WriteLine和String. Format8.3.5 自定義類(lèi)型的字符串格式化舉例8.3.6 ICustomFormatter8.3.7 字符串比較8.4 處理來(lái)自外部的字符串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ù)組、容器類(lèi)型和迭代器9.1 數(shù)組介紹9.1.1 隱式類(lèi)型化數(shù)組9.1.2 類(lèi)型的轉(zhuǎn)換和協(xié)方差9.1.3 排序和搜索9.1.4 同步9.1.5 向量與數(shù)組9.2 多維矩形數(shù)組9.3 多維鋸齒數(shù)組9.4 容器類(lèi)型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 非綁定(公開(kāi)實(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 泛型的效率和類(lèi)型安全11.3 泛型的類(lèi)型定義和構(gòu)造類(lèi)型11.3.1 泛型類(lèi)和結(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類(lèi)型11.3.8 構(gòu)造類(lèi)型訪問(wèn)權(quán)限控制11.3.9 泛型和繼承11.4 約束11.5 泛型系統(tǒng)容器11.6 泛型系統(tǒng)接口11.7 精選的問(wèn)題和解決方案11.7.1 泛型類(lèi)型中的轉(zhuǎn)化和操作符11.7.2 動(dòng)態(tài)地創(chuàng)建構(gòu)造類(lèi)型11.8 小結(jié)第12章 C#中的線程12.1 C#和.NET中的線程12.1.1 開(kāi)始線程編程12.1.2 IOU模式和異步方法調(diào)用12.1.3 線程狀態(tài)12.1.4 終止線程12.1.5 停止和喚醒休眠線程12.1.6 等待線程退出12.1.7 前臺(tái)和后臺(tái)線程12.1.8 線程本地存儲(chǔ)12.1.9 非托管線程和COM套件如何適應(yīng)12.2 線程間同步工作12.2.1 用Interlocked類(lèi)實(shí)現(xiàn)輕量級(jí)的同步12.2.2 Monitor類(lèi)12.2.3 鎖對(duì)象12.2.4 信號(hào)量12.2.5 事件12.2.6 Win32的同步對(duì)象和WaitHandle12.3 使用線程池12.3.1 異步方法調(diào)用12.3.2 定時(shí)器12.4 小結(jié)第13章 C#規(guī)范形式探索13.1 引用類(lèi)型的規(guī)范形式13.1.1 類(lèi)默認(rèn)是密封的13.1.2 使用非虛擬接口模式13.1.3 對(duì)象是否可克隆13.1.4 對(duì)象是否可清除13.1.5 對(duì)象需要終結(jié)器嗎13.1.6 對(duì)象相等意味著什么13.1.7 如果重寫(xiě)了Equals方法,那么也應(yīng)該重寫(xiě)GetHashCode方法13.1.8 對(duì)象支持排序嗎13.1.9 對(duì)象需要形式化顯示嗎13.1.10 對(duì)象可以被轉(zhuǎn)換嗎13.1.11 在所有情況下都保證類(lèi)型安全13.1.12 使用非可變的引用類(lèi)型13.2 值類(lèi)型的規(guī)范形式13.2.1 為了獲得更好的性能而重寫(xiě)Equals方法13.2.2 值類(lèi)型需要支持接口嗎13.2.3 將接口成員和派生方法實(shí)現(xiàn)為類(lèi)型安全的形式13.3 小結(jié)13.3.1 引用類(lèi)型的檢查單13.3.2 值類(lèi)型的檢查單第14章 擴(kuò)展方法14.1 擴(kuò)展方法介紹14.1.1 編譯器如何發(fā)現(xiàn)擴(kuò)展方法14.1.2 探究?jī)?nèi)部實(shí)現(xiàn)14.1.3 代碼易讀性與代碼易懂性14.2 使用建議14.2.1 考慮擴(kuò)展方法優(yōu)先于繼承14.2.2 分離的命名空間中的隔離擴(kuò)展方法14.2.3 修改一個(gè)類(lèi)型的契約可能會(huì)打破擴(kuò)展方法14.3 轉(zhuǎn)換14.4 鏈?zhǔn)讲僮?4.5 自定義迭代器14.6 訪問(wèn)者模式14.7 小結(jié)第15章 lambda表達(dá)式15.1 lambda表達(dá)式介紹15.1.1 lambda表達(dá)式15.1.2 lambda語(yǔ)句15.2 表達(dá)式樹(shù)15.2.1 對(duì)表達(dá)式的操作15.2.2 函數(shù)的數(shù)據(jù)表現(xiàn)15.3 lambda表達(dá)式的有益應(yīng)用15.3.1 迭代器和生成器重訪問(wèn)15.3.2 閉包(變量捕獲)和緩存15.3.3 currying15.3.4 匿名遞歸15.4 小結(jié)第16章 LINQ:語(yǔ)言集成查詢(xún) 16.1 連接數(shù)據(jù)的橋梁 16.1.1 查詢(xún)表達(dá)式 16.1.2 再談擴(kuò)展方法和lambda表達(dá)式16.2 標(biāo)準(zhǔn)查詢(xún)操作符16.3 C#查詢(xún)關(guān)鍵字 16.3.1 from子句和范圍變量 16.3.2 join子句 16.3.3 where子句和過(guò)濾器 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#迭代器鼓勵(lì)懶惰 16.4.2 不能偷懶 16.4.3 立即執(zhí)行查詢(xún) 16.4.4 再談表達(dá)式樹(shù)16.5 函數(shù)式編程中的技術(shù)16.5.1 自定義標(biāo)準(zhǔn)查詢(xún)操作符和延遲求值 16.5.2 替換foreach語(yǔ)句16.6 小結(jié)

章節(jié)摘錄

  第1章 C#預(yù)覽  1.4 C#3.0新特性概覽  C#3.0包括一些很好的新特性。大部分新特性是支持語(yǔ)言集成查詢(xún)(Language Integrated Query,LINQ)的基石。然而,即使在LINQ的范圍外單獨(dú)使用,它們也非常有用。其中的太部分特性使程序員使用函數(shù)式編程技術(shù)更容易?! ⊥ㄟ^(guò)使用新的關(guān)鍵字var,C#現(xiàn)在支持隱式的類(lèi)型化局部變量。需要注意的是,這些變量不是無(wú)類(lèi)型的,它們的類(lèi)型是編譯時(shí)推斷出的。這點(diǎn)在第3章作介紹。  你是否曾想創(chuàng)建一個(gè)簡(jiǎn)單類(lèi)型來(lái)保存有關(guān)數(shù)據(jù),但又煩惱于需要?jiǎng)?chuàng)建整個(gè)新類(lèi)?在很多情況下,新支持的匿名類(lèi)型幫你減輕了這個(gè)負(fù)擔(dān)。使用匿名類(lèi)型可以在一個(gè)復(fù)合語(yǔ)句中定義并實(shí)例化一個(gè)類(lèi)型。匿名類(lèi)型將在第4章進(jìn)行介紹。  自動(dòng)實(shí)現(xiàn)的屬性(auto-implementedproperty)是另一個(gè)有用的新特性,它為我們省去了打字的麻煩,減少了引入bug的可能性。多少次你曾為保存一點(diǎn)數(shù)據(jù)而聲明一個(gè)類(lèi),然后疲于為這些數(shù)據(jù)創(chuàng)建屬性訪問(wèn)函數(shù)?畢竟,這樣做符合良好封裝的實(shí)踐。謝天謝地,自動(dòng)實(shí)現(xiàn)的屬性極大地減少了定義屬性的輸入量。第4章將介紹自動(dòng)實(shí)現(xiàn)屬性的技術(shù)細(xì)節(jié)。

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

  “作者的C#造詣極深,而且善于引導(dǎo)讀者在輕松愉快的氛圍中學(xué)習(xí)C#的特性。通過(guò)學(xué)習(xí)此書(shū)內(nèi)容,你的C#水平必將今非昔比?!薄  猈es dyer,微軟C#開(kāi)發(fā)小組成員  “我讀過(guò)不下100本.NET方面的書(shū),自己也寫(xiě)過(guò)幾本書(shū),但是此書(shū)精彩絕倫,遠(yuǎn)遠(yuǎn)超出我的預(yù)期。強(qiáng)烈推薦!”  ——William Ryan,微軟MVP

編輯推薦

  如果你已經(jīng)有一定C#或者其他語(yǔ)言的編程經(jīng)驗(yàn),就完全不用去讀那些膚淺的入門(mén)書(shū)或者冗長(zhǎng)繁復(fù)的大部頭?!禔ccelerated C#2008 C#捷徑教程》將為你提供一條快速掌握C#的捷徑。  作者在不大的篇幅里容納了豐富扎實(shí)的內(nèi)容,不僅全面涵蓋了C#的語(yǔ)言特性,包括3.O引入的Lambda表達(dá)式、擴(kuò)展方法和LlNQ等,總結(jié)了正確使用C#的習(xí)慣用法和設(shè)計(jì)模式。而且深入探討了CLR。書(shū)中大量富于啟發(fā)性的實(shí)例和經(jīng)驗(yàn)之談。更能讓你的軟件開(kāi)發(fā)水平得到質(zhì)的飛躍。  好評(píng)如潮的C#實(shí)戰(zhàn)圖書(shū)  汲?。甆 ET技術(shù)精髓的捷徑  專(zhuān)章講述習(xí)慣用法與設(shè)計(jì)模式

圖書(shū)封面

圖書(shū)標(biāo)簽Tags

無(wú)

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


    C#捷徑教程 PDF格式下載


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

 
 

 

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

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