C#本質論第四版-1,抄書才能看下去,否則兩三眼就看完了,一摞書都成了擺設。抄下了記憶更深入

C#本質論第四版-1,抄書才能看下去,否則兩三眼就看完了,一摞書都成了擺設。抄下了記憶更深入java

 

 

本書面向的讀者c++

寫做本書時,我面臨的一個挑戰是如何持續吸引高級開發人員眼球的同時,不因使用assembly、link、chain、thread和fusion等字眼而打擊初學者的信心,不然許多人會誤覺得這是一本講冶金而不是程序設計的書,本書主要讀者是已經有必定變成經驗,並想多學一種語言「傍身」的開發者,但我仍是忍住編排了本書的內容,以便使各類層次的開發者可以從中獲益。程序員

初學者;假如你是變成新手,本書將幫助你從入門程序員度過成爲C#開發者,消除之後在面臨任何C# 編程任務時的懼怕心理。本書不只要教會你語法,還要教你養成良好的編程習慣,爲未來的編程生涯打下良好的基礎。算法

熟悉結構化編程的程序員,學習外語的最好的方法就是沉浸法,相似的,學習一門計算機語言最好的方法就是在動手中學習,而不是等熟知了它的全部理論以後再動手,基於這個前提,本書最開始的內容是應該能夠開始寫基本的控制流程程序。然而,要成爲真正的C#開發者,記住語法只是第一步,爲了從簡答程序過分到企業級咖啡,C#開發者必須熟練地從兌獎及其關係的角度來思考問題,爲此,第五章的初學者主題,開始介紹類和麪向對象的開發。對於C、cobol和fortran等結構化的編程語言,雖然它們扔在發揮做用,但做用會愈來愈小,因此,軟件工程師們應該逐漸開始瞭解面向對象開發,C#是進行這一思惟模式轉變的理想語言,由於它原本就是基於面向對象開發,這一種心思想來設計的。編程

熟悉基於對象和麪向對象理念的開發者,C++和java程序員以及許多經驗的vb程序員均可歸於此類,對於分號和大括號,他們但是一點都不陌生,簡答瀏覽一下第一張的代碼,你會發現,從核心上講,C#相似於你熟知的C和C++風格的語言。設計模式

C# 專家,對於以及ing精通C#的人,本書可供你參考不太常見的語法,此外,對於其餘地方強調較少的一些語言細節以及微妙之處,我提出了本身的看法,最重要的是,本書提供了編寫可靠和易維護代碼的貴伐及模式,你教別人學C#時,本書也很有助益,隨着C#3.0、C#4.0和C#5.0的出現,一些最重要的加強包括:api

隱式類型的變量數組

擴展方法安全

分部方法多線程

匿名類型

泛型

Lambda語句和表達式

表達式樹

標準查詢操做符

查詢表達式

動態編程

用任務編程庫和async進行多線程編程

用plinq進行並行查詢處理

併發集合

考慮到許多人還不熟悉這些主題,所以本書圍繞他們展開了詳細的討論,設計高級C#開發的還有指針這一主題,該主題將在地21章討論,就算是有經驗的C#開發者,也未必能很透徹地理解這一主題。

本書特點

本書是一本語言參考書,它村訊核心C#5.0語言規範。爲了幫助讀者理解各類C#構造,書中用了大量例子演示了每一種特性,並且爲每一個概念都提供了相應的規範和最佳實踐,以確保代碼能順利編譯、避免留下隱患,並得到最佳的可維護性。

爲了加強可讀性,全部代碼軍進行了特殊格式處理,並且每一章的內容都是用思惟導圖來歸納。

C#編碼規範

本書新版本最重大的改進之一就是增長了大量編碼規範,例如地16章中的一個規範以下所示:

規範:

要確保相等的對象有相同的散列碼

要確保對象的散列碼在一個散列表中永不變化。

要去報散列算法跨省產生良好分佈的散列碼

要去報散列算法在任何可能的對象撞他中健壯性。

一名知道語法的程序員和一名能因時宜地地寫出最搞笑代碼的專家的區別,關鍵就是這寫編碼的規範。專揀不只讓代碼經過編譯,還遵循最佳時間,下降產生bug的機率,並使用代碼的維護變得更容易,編碼規範強調了一些關鍵原則,開發時務必注意。

代碼示例

本書大多數代碼都能在公共語言基礎結構的任何實現上運行,其中包括mono、rotor和microsoft.net平臺。除了在解釋之和摩羯平臺有關的重要概念的地方,我不多使用平臺或廠商特有的庫。

下面是一個示例代碼清單。

Clanss MiracleMax

{

       Static void Main()

{
       string max:;

       Max = 「Have fun storming the castle!」;

       System.Console.WriteLine(max);

}

}

下面簡答介紹一下代碼格式

註釋以斜體表示

關鍵字加粗

有點代碼被突出顯示,是爲了指明這些代碼與以前列出的有所區別,或是爲了演示政委中介紹的概念

突出顯示的內容多是一整行,也可能僅僅是一行中的幾個字符

不完整的程序清單包含一個省略號,表示無關的代碼已省略

在代碼清單以後,列出了對應控制檯輸出,以下例所示:

執行程序時要由用戶輸入的內容加粗顯示。

雖然提供完整的代碼示例能夠方便地複製到本身的程序中,但這樣作回下降學習特定主題的意義,所以須要自行修改代碼示例,而後再把它們集成到本身的程序中。代碼示例中最大的文帝是省略了像異常處理這樣的錯誤檢查,此外,書中的代碼示例沒有顯示地包含using system語句,在全部的例子中這個語句都是必須的。

思惟導圖

每章開頭都是一副思惟導圖,做爲提綱,它的做用是爲讀者提供對每章內容的快速參考,下面是一個例子

每一章的主題顯示在思惟導圖的中心,高級主題圍繞中心展開,利用思惟導圖,讀者能夠方便地搭建本身的知識體系,能夠從一個主題出發,更清楚地理解其周邊的各個具體概念,避免中途糾纏於一些不相干的枝節問題。

分裂解說,根據本身的經驗水平,書中特殊的代碼塊和頁面邊緣的灰色豎線條能夠變公主你輕鬆地找到適合本身的內容。

初學者主題:特比針對入門級程序員提供定義或解釋:

高級主題:可讓有經驗的開發者將注意力放在他們最關心的內容上。

標註: 用標註框來強調關鍵原則,是讀者對其重要性一目瞭然。

語言對比:分散在正文中的補充內容,描述了C#和睦體語言的關鍵差別,爲熟悉氣體語言的讀者提供指引。

本書內容組織

總地說來,軟件工程宗旨就是對複雜性進行管理。本書正式基於這個宗旨來組織內容的。第1章~第4章介紹的是結構會變成,學習了這些內容後,你可當即開始寫一些功能簡單的代碼。第5章~第9章介紹了C#的面向對象構造,新手應在徹底理解了這幾章的內容以後,再開始接觸本書其他部分更高級的主題。第11章~地13章介紹了更多用於下降發展性的構造,講解了當今幾乎全部程序都要用到的通用設計模式。在理解了它們以後,你能夠更加輕鬆地理解如何經過反射和特性來實現動態變成。在後續的章節中,將普遍運用反射和特性來實現線程處理和互操做性。

本書最後專門用一張來說出cli。這一張針對開發平臺對C#語言進行描述。之因此反倒最後。是由於它並非C#特有的,並且不會涉及語法和編程風格問題,不過,本章適合在任什麼時候候閱讀,或許最恰當的時機是在越多了第一章以後。

下面是每一章的內容提要(使用黑體的章號代表那一章的內容代表那一章的內容在C#3.0~5.0版本中都有。

第一章,      C#概述:這一章在展現了用C#編寫的helloworld程序只有,進一步剖析了C#。這應當能使讀者熟悉C#程序的外觀和感受。 這一章提供了讓讀者編譯和調試本身的程序所需的足夠多的細節,此外,還簡單描述了執行C#程序的上下文及其中間語言。

第二章,      數據類型:任何用的程序都要處理數據,這一章姐掃了C#的兩種基本數據類型,即值類型和引用類型,另外還討論了類型間的轉換以及C# 對數組的支持。

第三章,      操做符和控制流,讓計算機擅長重複性操做,爲了利用計算機的這個能力,須要知道如何在本身程序中添加循環和條件邏輯。這一章還討論了C#操做符數據轉換以及預處理指令。

第四章,      方法和參數,這一章研究了有關方法及其參數的細節,其中包括經過參數來傳值、傳引用和返回數據。C#4.0添加了對默認參數的支持,本章解釋瞭如何使用它們。

第五章,      類:前面已經學過了類的基本構成元素,這一章將這些構造合併到一塊兒,從而得到具備完整功能的類型。類是面向對象的類型。類是面向對象技術的核心,它爲一類對象定義了模板。

第六章,      集成,雖然集成是許多開發者的基本編程手段,但C#提供了獨特的構造好比new修飾符。這一章討論了繼承語法的細節,其中包括重寫。

第七章,      接口,這一章戰略如何利用接口來定義類之間的能夠進行版本控制的交互契約,C#同時包含顯示和隱式的接口成員實現,能夠實現一個額外的封裝等級,這是其餘大多數語言所不支持的。

第八章,      值類型,儘管不如應用類型那麼流行,但有些情感下仍然有必要定義行、爲相似於C#內置基本類型的值類型。這一章要介紹如何定義結構,同時揭示它們的特性。

第九章,      合式類型,這一章討論了一些更高級的類型定義,解釋瞭如何實現操做符,好比「+」和轉型操做發,並描述瞭如何將多個類封裝到一個庫中,除此以外,這一章還演示瞭如何定義命名空間和xml註釋,並討論瞭如何基於垃圾回收機制來設計使人滿意的類。

第十章,      異常處理,這一章對第4章引入的一場處理機制的一個延伸討論,描述瞭如何利用異常層次結構來建立自定義異常。此外,它還強調了一場處理的一些最佳實踐。

第十一章, 泛型,從某種意義上說,檢討或許是C#1.0缺乏的一個重要的特性。這一章全面討論了自2.0引入的這個特性,除此以外,C#4.0增長了對協變和逆變的支持。本章將在泛型的背景中探討它們。

第十二章, 委託和lanmbda表達式:正式由於委託,才使C#與其前身語言c和c++等有了顯著的不一樣,它定義了在代碼中處理時間的模式。這幾乎萬川消除了寫輪訓例程的必要。Lanmbda表達式是在委託的基礎上構建起來的,它提供了比委託更加優雅和簡潔的語法。本章的內容是滴14章討論的心的集合api基礎。

第十三章, 事件,封裝起來的委託稱爲事件,是公共語言運行時的核心構造,本章還探討了匿名方法,這也是C#2.0新增的。

第十四章, 支持標準查詢操做符的集合接口,咱們經過討論新的enumerable類的擴展方法,想你介紹了C#3.0引用的一些見到但又很是強大的改變,enumeralbe淚使一個全新的集合api成爲可能,這個啊皮成爲標準查詢操做符,本章對它進行了詳細討論。

第十五章, 使用查詢表達式的linq:若是隻使用標準查詢操做符,就會造成讓你難以辨認的長語句,然而,查詢表達式提供了一種相似SQL風格的語法,可以有效地解決這個問題,這一章會詳細條圇這種表達式。

第十六章, 構建自定義集合,在構建用於操縱業務對象的自定義api時,常常都須要建立自定義的集合,本章討論具體如何作,同時,還介紹了能使自定義集合的構建變得更簡單的上下文關鍵字。

第十七章, 反射、特性和動態變成;20世紀80年代末,程序結構的思惟模式發生了根本性的變化,面向對象的變成是這個變化的基礎。相似地,特性使說明性變成和嵌入元數據成爲了可能,於是引入了一種新的思惟模式。這一章討論了特性的方方面面,並討論瞭如何經過反射機制來獲取它們,這一章還討論瞭如何經過基類庫中序列化框架來實現文件的輸入輸出。C#4.0增長一個新的的關鍵字,即dynamic,該關鍵字將全部類型檢查都移至運行時進行,於是極大擴展了C#能作的事情。

第十八章, 多線程處理,大多數現代的程序都要求使用線程來執行長時間運行的任務,還要確保對併發的事件進行快速響應,隨着程序變得愈來愈複雜,必須採起其餘措施來保護浙西高級環境中的數據。多線程應用程序的編寫是一項複雜的任務。這一章討論瞭如何操縱線程,並講述瞭如何採起一些必要的措施來防止將多線程應用程序弄得一團糟。

第十九章, 線程同步,這一章以低18章爲基礎,演示瞭如何利用一些內建的縣城處理模式來簡化對縣城代碼的顯式控制。

第二十章, 平臺互操做性和不安全的代碼:必須認識到的是,C#是相對年輕的一種語言,許多現有的代碼是用其餘語言寫成的,爲了用好這些現有的代碼,C#經過p/invoke提供了對互操做性,非託管代碼的調用的支持。除此以外,C#容許使用指針,也容許執行直接內存操做。雖然使用陣陣的代碼要求特殊的權限才嗯那個運行,但它具備與C風格的api徹底兼容的能力。

第二十一章,          Cli,事實上,C#被設計成一種在CLI的頂部工做的最郵箱的編程語言,這一章討論了C#程序與底層運行時及其規範的關係。

 

但願本書成爲你學習和掌握C#集成的一個好幫手,靈位之後須要瞭解C#的一些特殊主體及其內部工做原理的時候,本書也是一本出色的參考書。

相關文章
相關標籤/搜索