書籍簡介:
本書是一本面向C#初學(xué)者的實用教程。從開發(fā)基礎(chǔ)開始,由淺入深地講解了C#的基礎(chǔ)語法和重要特性,分析了在開發(fā)中必須掌握的技術(shù)要領(lǐng)和經(jīng)驗心得。語言輕松幽默,通過精心選擇的實例和詳盡的代碼全面介紹了C#*特色的關(guān)鍵知識點,有助于初學(xué)者迅速從一個C#開發(fā)的門外漢成長為全面掌握技術(shù)要領(lǐng)的開發(fā)人員。
本書適合C#和.NET初學(xué)者、Web開發(fā)工程師以及計算機專業(yè)的學(xué)生閱讀。
作者簡介:
李志,網(wǎng)名Learning hard,.NET資深軟件開發(fā)工程師,微軟C#方向的MVP,有著豐富的.NET開發(fā)經(jīng)驗。2012年5月開始在博客園發(fā)表.NET技術(shù)相關(guān)文章,獲得了大量園友的好評,博客園排名躋身前50名。
出版日期:
2015年02月
章節(jié)目錄:
第1章 你真的了解C#嗎
1.1 什么是C#
1.1.1 C#語言的發(fā)展歷程
1.1.2 C#能編寫哪些應(yīng)用程序
1.2 什么是.NET Framework
1.2.1 .NET Framework的組成
1.2.2 C#與.NET Framework的關(guān)系
1.2.3 C#代碼的執(zhí)行過程
1.3 歸納總結(jié)
第2章 來點C#的感覺
2.1 開發(fā)環(huán)境的搭建
2.2 創(chuàng)建“歡迎你”應(yīng)用程序
2.2.1 創(chuàng)建控制臺項目
2.2.2 編譯和運行程序
2.2.3 對程序進行調(diào)試
2.3 歸納總結(jié)
第3章 打開C#的大門——C#語言基礎(chǔ)
3.1 標識符和關(guān)鍵字
3.1.1 標識符
3.1.2 關(guān)鍵字
3.2 基礎(chǔ)數(shù)據(jù)類型
3.2.1 數(shù)值類型
3.2.2 字符串類型
3.2.3 枚舉類型
3.2.4 結(jié)構(gòu)體類型
3.2.5 數(shù)組類型
3.3 變量和常量
3.3.1 變量的使用
3.3.2 變量的作用域
3.3.3 常量
3.4 運算符和表達式
3.4.1 運算符
3.4.2 運算符優(yōu)先級
3.4.3 運算符重載
3.4.4 表達式
3.5 C#中的語句
3.5.1 條件語句
3.5.2 循環(huán)語句
3.5.3 跳轉(zhuǎn)語句
3.6 歸納總結(jié)
第4章 C#中的類
4.1 什么是類
4.2 C#中如何定義一個類
4.3 類的成員
4.3.1 字段
4.3.2 屬性
4.3.3 方法
4.3.4 構(gòu)造函數(shù)
4.3.5 析構(gòu)函數(shù)
4.3.6 索引器
4.4 類實例化
4.5 類與結(jié)構(gòu)體的區(qū)別
4.6 歸納總結(jié)
第5章 首先需要明確的——C#中的面向?qū)ο缶幊獭 ?br>5.1 封裝
5.2 繼承
5.2.1 C#中的繼承
5.2.2 密封類
5.2.3 子類的初始化順序
5.3 多態(tài)
5.3.1 使用virtual和override關(guān)鍵字實現(xiàn)方法重寫
5.3.2 阻止派生類重寫虛成員
5.3.3 使用新成員隱藏基類成員
5.4 所有類的父類:System.object
5.5 歸納總結(jié)
第6章 電腦有USB接口,C#也有接口
6.1 什么是接口
6.2 如何使用接口來編程
6.2.1 接口的定義
6.2.2 繼承接口
6.2.3 調(diào)用接口中的方法
6.3 顯式接口實現(xiàn)方式
6.4 接口與抽象類
6.5 面向?qū)ο缶幊痰膽?yīng)用
6.6 歸納總結(jié)
第7章 透過外表看本質(zhì)——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 歸納總結(jié)
第8章 正式進入C#的世界——委托
8.1 C#委托是什么
8.2 委托的使用
8.3 為什么要引入委托
8.4 委托的本質(zhì)
8.5 委托鏈
8.5.1 委托鏈的使用
8.5.2 從委托鏈中移除委托
8.6 歸納總結(jié)
第9章 事件揭秘
9.1 什么是事件
9.2 使用事件
9.2.1 如何定義事件
9.2.2 訂閱和取消事件
9.2.3 擴展EventArgs類
9.3 事件的本質(zhì)
9.4 歸納總結(jié)
第10章 深入理解類型
10.1 C#中的類型——值類型和引用類型
10.1.1 什么是值類型和引用類型
10.1.2 值類型與引用類型的區(qū)別
10.1.3 兩大類型間的轉(zhuǎn)換——裝箱與拆箱
10.2 參數(shù)傳遞問題剖析
10.2.1 值類型參數(shù)的按值傳遞
10.2.2 引用類型參數(shù)的按值傳遞
10.2.3 string引用類型參數(shù)按值傳遞的特殊情況
10.2.4 值類型和引用類型參數(shù)的按引用傳遞
10.3 歸納總結(jié)
第11章 使類型參數(shù)化——泛型
11.1 泛型是什么
11.2 C# 2.0為什么要引入泛型
11.3 全面解析泛型
11.3.1 類型參數(shù)
11.3.2 泛型中的靜態(tài)字段和靜態(tài)函數(shù)問題
11.3.3 類型參數(shù)的推斷
11.3.4 類型參數(shù)的約束
11.4 歸納總結(jié)
第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中如何實現(xiàn)迭代器
12.3.3 C# 2.0簡化了迭代器的實現(xiàn)
12.3.4 迭代器的執(zhí)行過程
12.4 歸納總結(jié)
第13章 C#的春天——C# 3.0中智能的編譯器
13.1 自動實現(xiàn)的屬性
13.2 隱式類型
13.2.1 隱式類型的局部變量
13.2.2 隱式類型數(shù)組
13.3 對象集合初始化器
13.4 匿名類型
13.5 歸納總結(jié)
第14章 不一樣的編碼風格——Lambda表達式
14.1 Lambda表達式簡介
14.1.1 Lambda表達式的演變過程
14.1.2 Lambda表達式的使用
14.2 表達式也有樹結(jié)構(gòu)——表達式樹
14.2.1 動態(tài)地構(gòu)造一個表達式樹
14.2.2 通過Lambda表達式來構(gòu)造表達式樹
14.2.3 如何把表達式樹轉(zhuǎn)換成可執(zhí)行代碼
14.3 歸納總結(jié)
第15章 使類的擴展更簡單——擴展方法
15.1 什么是擴展方法
15.2 擴展方法的使用
15.2.1 定義擴展方法
15.2.2 調(diào)用擴展方法
15.3 編譯器如何發(fā)現(xiàn)擴展方法
15.4 空引用也可調(diào)用擴展方法
15.4.1 拿例子說話
15.4.2 空引用上調(diào)用擴展方法揭秘
15.5 歸納總結(jié)
第16章 數(shù)據(jù)操作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的本質(zhì)
16.4 歸納總結(jié)
第17章 小改動大作為——C# 4.0中的微小改動
17.1 可選參數(shù)和命名實參
17.1.1 可選參數(shù)
17.1.2 命名實參
17.1.3 COM互操作的福音
17.2 泛型的可變性
17.2.1 協(xié)變性
17.2.2 逆變性
17.2.3 協(xié)變和逆變的注意事項
17.3 歸納總結(jié)
第18章 靜中有動——動態(tài)類型
18.1 動態(tài)類型簡介
18.2 C#為什么要引入動態(tài)類型
18.2.1 可以減少強制類型轉(zhuǎn)換的使用
18.2.2 調(diào)用Python等動態(tài)語言
18.3 動態(tài)類型約束
18.3.1 不能用來調(diào)用擴展方法
18.3.2 委托與動態(tài)類型間不能做隱式轉(zhuǎn)換
18.3.3 不能調(diào)用構(gòu)造函數(shù)和靜態(tài)方法
18.3.4 類型聲明和泛型類型參數(shù)
18.4 實現(xiàn)自己的動態(tài)行為
18.4.1 使用ExpandoObject來實現(xiàn)動態(tài)行為
18.4.2 使用DynamicObject來實現(xiàn)動態(tài)行為
18.4.3 使用IDynamicMetaObject-Provider接口來實現(xiàn)動態(tài)行為
18.5 歸納總結(jié)
第19章 你必須掌握的多線程編程
19.1 多線程編程必備知識
19.1.1 進程與線程的概念
19.1.2 線程的調(diào)度
19.1.3 線程也分前后臺
19.2 線程的容器——線程池
19.2.1 線程池
19.2.2 通過線程池來實現(xiàn)多線程
19.2.3 協(xié)作式取消線程池線程
19.3 線程同步
19.3.1 多線程程序中存在的隱患
19.3.2 使用監(jiān)視器對象實現(xiàn)線程同步
19.3.3 線程同步技術(shù)存在的問題
19.4 歸納總結(jié)
第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 歸納總結(jié)
第21章 出師前闖關(guān)訓(xùn)練第一關(guān)——文件操作
21.1 文件操作核心類
21.1.1 File 和FileInfo類
21.1.2 Directory和DirectoryInfo類
21.2 流
21.3 對文件進行異步操作
21.4 歸納總結(jié)
第22章 出師前闖關(guān)訓(xùn)練第二關(guān)——網(wǎng)絡(luò)編程
22.1 網(wǎng)絡(luò)編程基礎(chǔ)知識
22.1.1 網(wǎng)絡(luò)分層總覽
22.1.2 各層所使用的協(xié)議
22.1.3 網(wǎng)絡(luò)程序的工作機制
22.2 基于TCP的網(wǎng)絡(luò)程序的實現(xiàn)
22.2.1 TCP的工作過程
22.2.2 基于TCP的簡單通信程序的實現(xiàn)
22.3 基于UDP的網(wǎng)絡(luò)程序的實現(xiàn)
22.3.1 UDP的工作原理
22.3.2 UDP的優(yōu)勢
22.3.3 基于UDP的簡單通信程序的實現(xiàn)
22.4 歸納總結(jié)
第23章 出師前闖關(guān)訓(xùn)練最后一關(guān)——使用GDI 實現(xiàn)屬于你的截圖工具
23.1 前期準備
23.1.1 什么是GDI
23.1.2 筆、畫筆和顏色
23.2 動手實現(xiàn)你的QQ截圖工具
23.2.1 實現(xiàn)思路
23.2.2 瞧瞧最終結(jié)果
23.3 歸納總結(jié)
封面圖: