編輯推薦
你還在為選擇哪本C#入門教程而猶豫不決嗎?
你還在為枯燥的語法知識而傷透腦筋嗎?
博客園超人氣博主、微軟MVP、資深.NET軟件開發工程師Learning hard告訴你怎麼學習C#!一書在手,C#不愁!
《圖靈原創:Learning hard C#學習筆記》特色:
1. 《《圖靈原創:Learning hard C#學習筆記》》全部是作者親身學習經驗的總結,超詳盡的學習筆記,獲博客園數萬網友點贊推薦。
2. 《《圖靈原創:Learning hard C#學習筆記》》是專門麵嚮C#初學者的入門教程,沒有枯燥的說教,而是教你如何提綱挈領,抓住核心特性,少走彎路,快速掌握C#精髓!
內容簡介
《圖靈原創:Learning hard C#學習筆記》是一本麵嚮C#初學者的實用教程。從開發基礎開始,由淺入深地講解瞭C#的基礎語法和重要特性,分析瞭在開發中必須掌握的技術要領和經驗心得。語言輕鬆幽默,通過精心選擇的實例和詳盡的代碼全麵介紹瞭C#具特色的關鍵知識點,有助於初學者迅速從一個C#開發的門外漢成長為全麵掌握技術要領的開發人員。
《圖靈原創:Learning hard C#學習筆記》適閤C#和.NET初學者、Web開發工程師以及計算機專業的學生閱讀。
作者簡介
李誌,網名Learning hard,.NET資深軟件開發工程師,微軟C#方嚮的MVP,有著豐富的.NET開發經驗。2012年5月開始在博客園發錶.NET技術相關文章,獲得瞭大量園友的好評,博客園排名躋身前50名。
內頁插圖
精彩書評
★“本書是作者親身學習經曆的真實總結,很適閤C#和.NET初學者、Web開發工程師以及計算機專業的學生閱讀。作者從不愛學習的IT新手成長為微軟C#方嚮的MVP、資深軟件開發工程師,每一步成長的背後都有辛勤的汗水,也有寶貴的經驗和教訓。學習本書雖不能讓你瞬間完成從菜鳥到IT領袖的蛻變,卻可以讓你少走彎路,紮紮實實地走嚮成功。”
—
—熊平,51CTO傳媒總裁 ★“剛來上海的時候,白天麵試,晚上迴來惡補白天被問到的問題,在博客園驚訝地發現瞭作者的文章,於是把他C#方麵的文章都看瞭一遍,這對我幫助很大。後來得知作者通過自己的努力學習,成為瞭微軟C#方嚮的MVP,十分敬佩作者這種把想法付諸行動的毅力。如果你是初學者,強烈推薦你看看這本書。”
——不要用我的二來傷害我,博客園博友 ★“很早之前就在博客園看過作者寫的博文,不管是在內容上還是邏輯上,都是無可挑剔的。當時就非常希望作者寫一本書,讓更多人受益,很開心現在終於看到瞭這本書。書中的內容都是作者自己提高的親身經曆,包含瞭很多有用的學習經驗,而且它不僅僅是一本講理論的書,還是一本實踐型的書,書中提供瞭多個實例,為大傢提供瞭動手實踐的機會,同時也演示瞭使用的編程技巧。強烈建議你看看這本書。”
—
—鬍丁丁,.NET開發工程師 目錄
第1章 你真的瞭解C#嗎
1.1 什麼是C#
1.1.1 C#語言的發展曆程
1.1.2 C#能編寫哪些應用程序
1.2 什麼是.NET Framework
1.2.1 .NET Framework的組成
1.2.2 C#與.NET Framework的關係
1.2.3 C#代碼的執行過程
1.3 歸納總結
第2章 來點C#的感覺
2.1 開發環境的搭建
2.2 創建"歡迎你"應用程序
2.2.1 創建控製颱項目
2.2.2 編譯和運行程序
2.2.3 對程序進行調試
2.3 歸納總結
第3章 打開C#的大門--C#語言基礎
3.1 標識符和關鍵字
3.1.1 標識符
3.1.2 關鍵字
3.2 基礎數據類型
3.2.1 數值類型
3.2.2 字符串類型
3.2.3 枚舉類型
3.2.4 結構體類型
3.2.5 數組類型
3.3 變量和常量
3.3.1 變量的使用
3.3.2 變量的作用域
3.3.3 常量
3.4 運算符和錶達式
3.4.1 運算符
3.4.2 運算符優先級
3.4.3 運算符重載
3.4.4 錶達式
3.5 C#中的語句
3.5.1 條件語句
3.5.2 循環語句
3.5.3 跳轉語句
3.6 歸納總結
第4章 C#中的類
4.1 什麼是類
4.2 C#中如何定義一個類
4.3 類的成員
4.3.1 字段
4.3.2 屬性
4.3.3 方法
4.3.4 構造函數
4.3.5 析構函數
4.3.6 索引器
4.4 類實例化
4.5 類與結構體的區彆
4.6 歸納總結
第5章 首先需要明確的--C#中的麵嚮對象編程
5.1 封裝
5.2 繼承
5.2.1 C#中的繼承
5.2.2 密封類
5.2.3 子類的初始化順序
5.3 多態
5.3.1 使用virtual和override關鍵字實現方法重寫
5.3.2 阻止派生類重寫虛成員
5.3.3 使用新成員隱藏基類成員
5.4 所有類的父類:System.object
5.5 歸納總結
第6章 電腦有USB接口,C#也有接口
6.1 什麼是接口
6.2 如何使用接口來編程
6.2.1 接口的定義
6.2.2 繼承接口
6.2.3 調用接口中的方法
6.3 顯式接口實現方式
6.4 接口與抽象類
6.5 麵嚮對象編程的應用
6.6 歸納總結
第7章 透過外錶看本質--IL 語言
7.1 什麼是IL
7.2 先睹為快--從"Hello World"看IL
7.2.1 工具的介紹
7.2.2 使用工具查看IL代碼
7.3 教你看懂IL代碼
7.3.1 IL基本類型
7.3.2 變量的聲明
7.3.3 基本運算
7.3.4 IL中的流程控製
7.4 歸納總結
第8章 正式進入C#的世界--委托
8.1 C#委托是什麼
8.2 委托的使用
8.3 為什麼要引入委托
8.4 委托的本質
8.5 委托鏈
8.5.1 委托鏈的使用
8.5.2 從委托鏈中移除委托
8.6 歸納總結
第9章 事件揭秘
9.1 什麼是事件
9.2 使用事件
9.2.1 如何定義事件
9.2.2 訂閱和取消事件
9.2.3 擴展EventArgs類
9.3 事件的本質
9.4 歸納總結
第10章 深入理解類型
10.1 C#中的類型--值類型和引用類型
10.1.1 什麼是值類型和引用類型
10.1.2 值類型與引用類型的區彆
10.1.3 兩大類型間的轉換--裝箱與拆箱
10.2 參數傳遞問題剖析
10.2.1 值類型參數的按值傳遞
10.2.2 引用類型參數的按值傳遞
10.2.3 string引用類型參數按值傳遞的特殊情況
10.2.4 值類型和引用類型參數的按引用傳遞
10.3 歸納總結
第11章 使類型參數化--泛型
11.1 泛型是什麼
11.2 C# 2.0為什麼要引入泛型
11.3 全麵解析泛型
11.3.1 類型參數
11.3.2 泛型中的靜態字段和靜態函數問題
11.3.3 類型參數的推斷
11.3.4 類型參數的約束
11.4 歸納總結
第12章 可空類型、匿名方法和迭代器
12.1 可空類型
12.1.1 可空類型簡介
12.1.2 你知道空閤並操作符嗎
12.1.3 可空類型的裝箱和拆箱操作
12.2 匿名方法
12.2.1 什麼是匿名方法
12.2.2 對變量捕捉過程的剖析
12.3 迭代器
12.3.1 迭代器的簡介
12.3.2 C# 1.0中如何實現迭代器
12.3.3 C# 2.0簡化瞭迭代器的實現
12.3.4 迭代器的執行過程
12.4 歸納總結
第13章 C#的春天--C# 3.0中智能的編譯器
13.1 自動實現的屬性
13.2 隱式類型
13.2.1 隱式類型的局部變量
13.2.2 隱式類型數組
13.3 對象集閤初始化器
13.4 匿名類型
13.5 歸納總結
第14章 不一樣的編碼風格--Lambda錶達式
14.1 Lambda錶達式簡介
14.1.1 Lambda錶達式的演變過程
14.1.2 Lambda錶達式的使用
14.2 錶達式也有樹結構--錶達式樹
14.2.1 動態地構造一個錶達式樹
14.2.2 通過Lambda錶達式來構造錶達式樹
14.2.3 如何把錶達式樹轉換成可執行代碼
14.3 歸納總結
第15章 使類的擴展更簡單--擴展方法
15.1 什麼是擴展方法
15.2 擴展方法的使用
15.2.1 定義擴展方法
15.2.2 調用擴展方法
15.3 編譯器如何發現擴展方法
15.4 空引用也可調用擴展方法
15.4.1 拿例子說話
15.4.2 空引用上調用擴展方法揭秘
15.5 歸納總結
第16章 數據操作So easy--LINQ解析
16.1 LINQ是什麼
16.2 LINQ好在哪裏
16.2.1 查詢錶達式
16.2.2 使用Linq to Objects查詢集閤
16.2.3 使用Linq to XML查詢XML 文件
16.3 理解LINQ的本質
16.4 歸納總結
第17章 小改動大作為--C# 4.0中的微小改動
17.1 可選參數和命名實參
17.1.1 可選參數
17.1.2 命名實參
17.1.3 COM互操作的福音
17.2 泛型的可變性
17.2.1 協變性
17.2.2 逆變性
17.2.3 協變和逆變的注意事項
17.3 歸納總結
第18章 靜中有動--動態類型
18.1 動態類型簡介
18.2 C#為什麼要引入動態類型
18.2.1 可以減少強製類型轉換的使用
18.2.2 調用Python等動態語言
18.3 動態類型約束
18.3.1 不能用來調用擴展方法
18.3.2 委托與動態類型間不能做隱式轉換
18.3.3 不能調用構造函數和靜態方法
18.3.4 類型聲明和泛型類型參數
18.4 實現自己的動態行為
18.4.1 使用ExpandoObject來實現動態行為
18.4.2 使用DynamicObject來實現動態行為
18.4.3 使用IDynamicMetaObject-Provider接口來實現動態行為
18.5 歸納總結
第19章 你必須掌握的多綫程編程
19.1 多綫程編程必備知識
19.1.1 進程與綫程的概念
19.1.2 綫程的調度
19.1.3 綫程也分前後颱
19.2 綫程的容器--綫程池
19.2.1 綫程池
19.2.2 通過綫程池來實現多綫程
19.2.3 協作式取消綫程池綫程
19.3 綫程同步
19.3.1 多綫程程序中存在的隱患
19.3.2 使用監視器對象實現綫程同步
19.3.3 綫程同步技術存在的問題
19.4 歸納總結
第20章 不得不說的異步編程
20.1 什麼是異步編程
20.2 同步方式存在的問題
20.3 異步編程模型(APM)
20.4 異步編程模型--EAP
20.5 TAP又是什麼
20.6 讓異步編程So easy--C# 5.0 中的async和await
20.7 歸納總結
第21章 齣師前闖關訓練第一關--文件操作
21.1 文件操作核心類
21.1.1 File 和FileInfo類
21.1.2 Directory和DirectoryInfo類
21.2 流
21.3 對文件進行異步操作
21.4 歸納總結
第22章 齣師前闖關訓練第二關--網絡編程
22.1 網絡編程基礎知識
22.1.1 網絡分層總覽
22.1.2 各層所使用的協議
22.1.3 網絡程序的工作機製
22.2 基於TCP的網絡程序的實現
22.2.1 TCP的工作過程
22.2.2 基於TCP的簡單通信程序的實現
22.3 基於UDP的網絡程序的實現
22.3.1 UDP的工作原理
22.3.2 UDP的優勢
22.3.3 基於UDP的簡單通信程序的實現
22.4 歸納總結
第23章 齣師前闖關訓練最後一關--使用GDI+實現屬於你的截圖工具
23.1 前期準備
23.1.1 什麼是GDI+
23.1.2 筆、畫筆和顔色
23.2 動手實現你的QQ截圖工具
23.2.1 實現思路
23.2.2 瞧瞧最終結果
23.3 歸納總結
前言/序言
大傢能看到這本書,我覺得十分欣慰。這本書曆時一年纔完成,期間經曆瞭很多興奮、沮喪和喜悅。我以前並不喜歡學習,也從未買過一本技術圖書。但是後來經過幾輪麵試失敗之後,我覺得自己不能再這麼下去瞭,既然選擇瞭做程序員,就應該做好。當時,有很多論壇和朋友都推薦CLRViaC#一書,於是我就嘗試買來看看,以此來提升自己。看著看著,我發現以前很多不理解的知識點和麵試中遇到的問題大部分都在書中找到瞭答案,這一下子激發瞭我心中對知識的渴望,花瞭一個月的時間就把這本書看完瞭。看的過程中,遇到不瞭解的知識點我就通過閱讀一些文章來幫助自己理解,這些文章大部分來自博客園。這不僅讓我瞭解瞭博客園,而且讓我覺得分享博文其實是一個很好的總結過程,漸漸地我也開始寫一些博文來總結自己學習的過程。讓我沒想到的是,文章發布之後得到瞭很多園友的支持和鼓勵,這讓我動力倍增,正式開始瞭我的博客園之旅。由於我的每篇博文都真實、準確地反映瞭自己的學習過程,所以在博客園的反響還不錯,好幾篇博文都登上瞭48小時閱讀排行榜。後來,圖靈的編輯找到瞭我,問我有沒有意願寫一本介紹C#基礎的圖書。我聽到這個消息自然是萬分喜悅,而喜悅之後迎來的是擔心,擔心寫得不好誤導瞭大傢,擔心自己不能堅持下去。不過迴過頭想想,自己寫博文不就是希望初學者少走彎路嗎?如果能寫成書,一來可以幫助其他剛入行的開發人員,二來對自己也是很好磨練和積纍。這樣,就有瞭你手上捧著的這本書瞭。
這本書中的每章都是我本人學習提高的親身經曆,讀者若能按照書中的內容來學習,肯定可以很好地掌握C#語言,這也有助其他語言學習的快速上手。我自己就是一個例子,我後來自學C++語言之後,發現C++很多內容和C#語言是相通的,不同的是解決問題提供的API不同罷瞭。所以,我希望本書是你進入C#殿堂的第一本書,學完這本書之後,我相信你也會像我一樣渴望獲得更多的知識,從此就Learninghard(我的博客園昵稱)瞭。
目標讀者
本書不僅包括瞭一些C#基礎語法,而且係統地介紹瞭C#1。0到C#5。0的所有核心特性,最後還通過3個實例程序來鞏固所學的知識。所以本書非常適閤初學者進行係統地學習,同時也適閤想係統學習C#的初級工程師。
學習這本書不要求你之前有任何C#基礎,但是你最好學習過一門編程語言,如C語言等。閱讀本書時,如果你之前已經接觸過C#語言的基礎語法,你可以根據自身情況來有選擇地閱讀。如果你之前完全沒有接觸C#的話,建議你從第1章循序漸進地學習,這樣有利於係統地掌握C#。最後,需要特彆注意的一點就是,在學習過程中,對於書中的例子,一定要親自敲一遍,即使有源碼也要自己去敲。
勘誤及源碼下載
由於作者水平有限,書中難免會齣現一些錯誤或者不準確的地方。如果你在學習過程中發現瞭錯誤或者有所疑問,請在圖靈社區本書頁麵提交勘誤,也可以直接聯係我。書中所有源碼都可以在圖靈社區本書頁麵“隨書下載”中下載。
緻謝
最後,我還想感謝我的傢人、女朋友和一直支持我的人,正是因為他們的理解和支持,纔使我有瞭動力和堅持的心,真心謝謝大傢!
圖靈原創:Learning hard C#學習筆記 下載 mobi epub pdf txt 電子書