-- 會員 / 註冊 --  
 帳號:
 密碼:
  | 註冊 | 忘記密碼
3/26 新書到! 3/19 新書到! 3/14 新書到! 12/12 新書到!
購書流程Q & A站務留言版客服信箱
3ds MaxMayaRhinoAfter EffectsSketchUpZBrushPainterUnity
PhotoShopAutoCadMasterCamSolidWorksCreoUGRevitNuke
C#CC++Java遊戲程式Linux嵌入式PLCFPGAMatlab
駭客資料庫搜索引擎影像處理FluentVR+ARANSYS深度學習
單晶片AVROpenGLArduinoRaspberry Pi電路設計CadenceProtel
HadoopPythonStm32CortexLabview手機程式AndroidiPhone
可查書名,作者,ISBN,3dwoo書號
詳細書籍分類

Visual C#從入門到精通(第9版)

( 簡體 字)
作者:[英]約翰·夏普(John Sharp)著 周靖 譯類別:1. -> 程式設計 -> .NET -> C#
譯者:
出版社:清華大學出版社Visual C#從入門到精通(第9版) 3dWoo書號: 50644
詢問書籍請說出此書號!

缺書
NT售價: 695

出版日:1/1/2019
頁數:660
光碟數:0
站長推薦:
印刷:黑白印刷語系: ( 簡體 版 )
加入購物車 加到我的最愛
(請先登入會員)
ISBN:9787302516248
作者序 | 譯者序 | 前言 | 內容簡介 | 目錄 | 
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證)
作者序:

譯者序:

前言:

Microsoft Visual C#是一種功能強大、使用簡單的語言,主要面向需要使用Microsoft .NET Framework來創建應用程序的開發者。它在C++和Microsoft Visual Basic的基礎上去蕪存菁,最終形成一種更加清晰、更富有邏輯的語言。
C# 1.0于2001年亮相。
幾年后隨著C# 2.0和Visual Studio 2005的問世,語言新增了幾個重要功能,包括泛型、迭代器和匿名方法等。
隨同Visual Studio 2008發布的C# 3.0添加了更多功能,包括擴展方法、Lambda表達式以及語言集成查詢(Language Integrated Query,LINQ)。
2010年發布的C# 4.0繼續增強,改善了與其他語言和技術的互操作性。新增功能包括具名參數和可選參數,另外還有dynamic類型(指示語言的“運行時”對對象進行晚期綁定)。在隨C# 4.0發布的.NET Framework中,最重要的新功能就是“任務并行庫”(Task Parallel Library,TPL)。可用TPL構建具有良好伸縮性的應用程序,從而快速和簡單地發揮出多核處理器的潛力。
C# 5.0通過async方法修飾符和await操作符提供了對異步任務的原生支持。
C# 6.0是一次增量式升級,提供了許多有利于簡化開發的功能,包括字符串插值(再也不需要String.Format了),改進的屬性實現方式,表達式主體方法等。
C# 7.0進一步增強,提高了生產力并移除了C#一些不合時宜的設計。例如,現在屬性訪問器方法可作為表達式主體成員實現,方法支持以元組形式返回多個值,簡化了out參數的用法,switch語句開始支持模式和類型匹配。還有其他許多更新,本書將一一闡述。
雖然Windows 10是運行C#應用程序最重要的平臺,但現在也可通過.NET Core運行時在其他操作系統(包括Linux)上運行用C#寫的代碼。這使程序更容易在多種環境中運行。另外,Windows 10支持高度交互性的應用程序,它們可以進行數據共享和協作,還可以連接云服務。Windows 10最引人注目的是對UWP(Universal Windows Platform,通用Windows平臺)應用的支持。這種應用設計在任何Windows 10設備上運行,無論是全功能的桌面系統、筆記本和平板,還是資源有限的智能手機和物聯網設備。熟悉C#的核心功能后,下一步就是掌握如何開發能在所有這些平臺上運行的應用。
語音激活是另一個值得關注的功能。Windows 10提供了Cortana(小娜)個人語音數字助理。可將自己的應用和Cortana集成來實現數據搜索和其他操作。雖然自然語音分析天生就很復雜,但讓應用響應Cortana的請求卻令人驚訝地簡單。詳情將在第26章描述。另外,從大規模企業應用程序到手機上運行的移動應用,云已成為許多系統架構的重要元素,本書最后一章會講解如何開發基于云的應用。
Visual Studio 2017開發環境使這些強大功能變得容易使用,大量新向導和增強顯著提高了開發效率。寫作這本書給我帶來了許多樂趣,希望你的閱讀亦是如此!
下面列出和本書《Visual C#從入門到精通》第8版相比的主要變化(從譯者的角度整理)。
2.3.3節“指定數值”,強調了顯式指定值的類型的重要性。
3.1.5節“從方法返回多個值”,引入元組概念,從一個方法返回多個值。這章開始引入表達式主體方法,注意雖然都用=>操作符,但表達式主體方法和Lambda表達式有本質的不同。相當于=>的兩個重載。
3.3.2節“嵌套方法”,本節提到的Factorial解決方案在學生文件中不可用。解決方案是用空白的DailyRate解決方案。
6.2.4節“篩選異常”,catch (...) when (...) {}。
6.4.1節“使用throw表達式”,用?:操作符簡化拋出異常的代碼。例如: string name = nameField.Text != "" ? nameField.Text : throw new Exception("未輸入值");。不這樣寫,就要寫一長串if…else語句。
7.4.3節“解構對象”,講的是和元組配合使用。Deconstruct方法和out參數相配合,向元組中的變量賦值。不要把解構器和析構器弄混了。
8.2.1節“空條件操作符”,在對象上調用其方法時,用?.操作符判斷對象是否為null。例如,A?.B?.C?.Do(E); 。其中,ABC任何一個求值為null,E都不會執行(短路)。
8.8.3節“復習switch語句”用switch代替一系列if (expr is type varname)...
else if(expr is type varname)...語句,從而簡化空引用檢查(不用is操作符)。case還能加when表達式來進一步限制條件。
10.1.11節“訪問包含值類型的數組”,講的是一些傳統數組處理方法,在數組元素從引用類型修改成值類型后會出錯,因為現在返回拷貝而非引用。解決方案是用ref關鍵字返回引用。例如,ref type method(...){... return ref 數組元素}。注意兩個地方添加了ref。調用也要改,變成ref type variable = ref method(...)。
第15章的簡單屬性大量改為使用表達式主體方法。例如,get { return this._x; }改為get => this._x;。
第16章介紹了新的常量表達式,可以直接將二進制賦給變量了:uint binData = 0b01111;。0b0是二進制,0x0是十六進制。眼睛看不過來還可以加下劃線(編譯器會忽略),例如uint moreHexData = 0x0_F0_5A_CC_0F;。
21.2.6節的練習和原書不符,解決方案并沒有一開始就集成BinaryTree項目,需自己添加。
24.1.6節“任務、內存分配和效率”解釋了如何用Cache-Aside設計模式把異步方法設計成大多數時候都同步執行,耗時的、經常重復的計算的結果放到緩存中。需要用NuGet包管理器下載System.Threading.Tasks.Extensions包。
第27章對有關Azure云的內容進行了全面修訂,代碼簡化了不少。
本書面向的讀者
本書假定你要使用Visual Studio 2017和.NET Framework 4.6.1學習基礎的C#編程知識。學完本書后,會對C#有一個全面和透徹的理解,會用它開發響應靈敏、易于伸縮的Windows 10應用程序。
本書不面向的讀者
本書面向剛開始用C#進行開發的人士,重點放在C#語言上面。本書不涉及企業級Windows應用程序的開發技術,比如ADO.NET、ASP.NET、Windows Communication Foundation或者Workflow Foundation。要了解這些方面的知識,可參考微軟出版社的其他書籍。
本書的組織
全書分為四部分。
第I部分“Visual C#和Visual Studio 2017概述”介紹C#語言的核心語法,還演示了Visual Studio編程環境。
第II部分“理解C#對象模型”深入探討如何用C#創建和管理新類型,如何管理這些類型引用的資源。
第III部分“用C#定義可擴展類型”全面討論如何利用C#語言元素來構建能在多個應用程序中重用的類型。
第IV部分“用C#構建UWP應用”描述通用Windows 10編程模型,以及如何用C#為新模型構建交互式應用程序。

導讀
本書幫助你掌握多個基本領域的開發技能。無論剛開始學習編程,還是從另一種語言(C、C++、Java或Visual Basic)轉向C#,本書都能提供幫助。參考下表找到最佳起點。

讀者類型 步驟
面向對象編程的新手 1. 按照“示例代碼”一節的步驟安裝練習文件
2. 順序閱讀第Ⅰ部分、第Ⅱ部分和第Ⅲ部分
3. 有一定經驗后,如有興趣,繼續完成第Ⅳ部分的學習
熟悉C語言等 1. 按照“示例代碼”一節的步驟安裝練習文件
過程編程語言, 2. 略讀前5章來獲得對C#和Visual Studio 2017的大致印
但新涉足C# 象,重點閱讀第6章∼第22章
3. 閱讀第Ⅳ部分了解如何構建可伸縮的Windows應用
從面向對象語言C++或 1. 按照“示例代碼”一節的步驟安裝練習文件
Java等遷移到C# 2. 略讀前7章,獲得對C#語言和Visual Studio 2017的大
致印象,重點閱讀第8章∼22章
3. 閱讀第Ⅳ部分了解如何構建UWP應用
從Visual Basic遷移到C# 1. 按照“示例代碼”一節的步驟安裝練習文件
2. 順序閱讀第Ⅰ部分、第Ⅱ部分和第Ⅲ部分
3. UWP應用的開發請閱讀第Ⅳ部分
4. 閱讀每章末尾的“快速參考”小節,
了解C#和Visual Studio 2017特有的構造
做完所有練習后再將 1. 按目錄查主題
本書用作為參考書 2. 閱讀章末“快速參考”,查看語法和技術要點歸納


本書大多數章節都通過實例方便讀者鞏固剛學到的知識。無論感興趣的是哪個主題,都注意先下載并安裝好示例代碼。
本書的約定和特色
本書通過一些約定來增強內容的可讀性,以便于讀者理解。
每個練習都用編號的操作步驟來完成。
“注意”等特色段落提供了成功完成一個步驟需要了解的額外信息或替代方案。
要求讀者輸入的文本加粗顯示。
兩個鍵名之間的加號(+)意味著必須同時按下這兩個鍵。例如,“按組合鍵Alt+ Tab”意味著按住Alt鍵,再按Tab鍵。
描述菜單操作時,采用“文件”|“打開”的形式,意思是從“文件”菜單中選擇“打開”命令。
系統需求
為了完成本書的練習,需準備以下硬件和軟件:
? Windows 10家庭、專業、教育或企業版,版本1507或以上
? Visual Studio 2017社區、專業或企業版的最新版本。安裝時最起碼選擇以下工作負載:
- 通用Windows平臺開發
- .NET桌面開發
- ASP.NET和Web開發
- Azure開發
- 數據存儲和處理
- .NET Core跨平臺開發
? 1.8 GHz或更快的處理器(推薦雙核或以上)
? 2 GB RAM(推薦4GB,在虛擬機中運行再加512 MB)
? 10 GB可用硬盤空間
? 1024 × 768或更高分辨率顯卡
? 下載軟件和示例代碼需要Internet連接
取決于Windows配置,可能需要以管理員身份安裝和配置Visual Studio 2017。
電腦上要啟用開發人員模式以創建和運行UWP應用。詳情參考“啟用設備進行開發”安裝示例代碼很簡單,將下載的zip文件解壓到“文檔”文件夾即可。
使用示例代碼
本書每一章都解釋了在什么時候以及如何使用練習文件。需要練習文件時,書中會給出相應的指示,幫助你打開正確文件。
重要提示 許多例子都依賴示例代碼沒有包含的NuGet包。這些包在首次生成項目時自動下載(有的需手動搜索并安裝)。如首次打開一個項目且不生成,Visual Studio可能報告大量引用無法解析的錯誤。生成一次即可完成引用的解析,錯誤將消失。
下表總結了本書用到的所有Visual Studio 2017項目和解決方案,它們以文件夾的形式進行分組以便查找。練習通常會為同一個項目提供初始文件和完成之后的版本。已完成的項目存儲在帶有- Complete后綴的文件夾中。

項目/解決方案 說明
第1章
TextHello 作為第一個項目,它指導你創建一個簡單程序來顯示歡迎文本
Hello 打開一個窗口,提示用戶輸入姓名并顯示個性化的歡迎辭
第2章
PrimitiveDataTypes 演示如何使用基元類型聲明變量,如何向變量賦值,如何在窗口中顯示值
MathsOperators 演示算術操作符(+、–、*、/、%)
第3章
Methods 改進上個項目的代碼,體會如何使用方法來建立代碼的結構
DailyRate 指導你寫自己的方法,執行方法,使用Visual Studio 2017調試器來單步執行方法
DailyRate Using 演示如何讓方法獲取可選參數,如何使用具名參數來調用方法
Optional Parameters
第4章
Selection 演示如何用嵌套if語句實現復雜邏輯,例如比較兩個日期的相等性
SwitchStatement 這個簡單的程序使用一個switch語句將字符轉換成相應的XML形式
第5章
WhileStatement 用while語句逐行讀取源文件,在窗體上的文本框中顯示每一行
DoStatement 使用do語句將十進制數轉換成八進制
第6章

MathsOperators 改進第2章的MathsOperators項目,試驗會造成程序執行失敗的各種未處理異常。
然后用try和catch關鍵字使應用程序更健壯,防止因為錯誤輸入或操作而失敗
第7章
Classes 演示如何定義自己的類,為它添加公共構造器、方法和私有字段;
還演示如何用new關鍵字創建類的實例,如何定義靜態方法和字段
第8章
Parameters 演示值類型和引用類型的參數的區別,還演示如何使用ref和out關鍵字
第9章
StructsAndEnums 定義結構來表示日期
第10章
Cards 使用數組建模紙牌游戲中的一手牌
第11章
ParamsArrays 演示如何使用params關鍵字使方法能接受任意數量的實參
第12章
Vehicles 用繼承創建簡單交通工具類,還演示如何定義虛方法
ExtensionMethod 演示如何為int類型創建擴展方法,允許將整數從十進制轉換成其他進制
第13章
Drawing 實現圖形繪圖包的一部分。用接口定義要由幾何圖形對象公開并實現的方法
Drawing Using Interfaces 擴展Drawing項目,將幾何圖形對象的常用功能集成到抽象類中
第14章
GarbageCollectionDemo 演示如何使用Dispose模式實現異常安全的資源清理
第15章
Drawing Using 擴展第13章的Drawing項目,用屬性封裝類的數據
Properties
AutomaticProperties 演示如何為類創建自動屬性,如何用它們初始化類的實例
第16章
Indexers 該項目使用了兩個索引器,一個根據姓名查找電話號碼,另一個根據電話號碼查找姓名
第17章
BinaryTree 演示如何使用泛型生成類型安全的結構,可包含任何類型的元素
BuildTree 演示如何使用泛型實現類型安全的方法,可獲取任何類型的參數
第18章
Cards 升級第10章的代碼,演示如何用集合建模一手牌
第19章
BinaryTree 演示如何實現泛型IEnumerator接口,為泛型Tree類創建枚舉器
IteratorBinaryTree 用迭代器為泛型Tree類生成枚舉器
第20章
Delegates 演示如何通過委托調用方法,將方法的邏輯和調用方法的應用程序分開。
然后對項目進行擴展,演示如何用事件提醒對象發生了某事,
以及如何捕捉事件并執行必要的處理
第21章
QueryBinaryTree 演示如何通過LINQ查詢從二叉樹對象獲取數據
第22章
ComplexNumbers 定義新類型來建模復數,并為這種類型實現常用的操作符
第23章
GraphDemo 生成并在UWP窗體上顯示復雜圖表。用單線程執行計算
Parallel GraphDemo 使用Parallel類對創建和管理任務的過程進行抽象
GraphDemo With
Cancellation 中途得體地取消任務
ParallelLoop 演示何時不該使用Parallel類創建和運行任務
第24章
GraphDemo 修改第23章的同名項目,使用async關鍵字和await操作符異步計算圖表數據
PLINQ 使用并行任務,用PLINQ查詢數據
CalculatePI 使用統計學采樣計算PI的近似值。使用了并行任務
第25章
Customers 實現能自動適應不同屏幕分辨率和設備大小的UI。UI使用XAML樣式更改字體和背景圖片
第26章
DataBinding 修改上一章的Customers項目,使用數據綁定在UI中顯示從數據源獲取的客戶資料;
還演示了如何實現INotifyPropertyChanged接口,從而允許UI更新客戶資料,并將改動發送回數據源
ViewModel 這個版本的Customers項目通過實現Model-View-ViewModel模式,將UI同數據源訪問邏輯分開
Cortana 將Customers應用和Cortana集成。用戶可發出語音指令來搜索客戶
第27章
Web Service 該解決方案包含一個Web應用程序來提供ASP.NET Web API Web服務,
使Customers應用能從SQL Server數據庫獲取客戶數據。
Web服務通過由實體框架創建的實體模型來訪問數據庫
內容簡介:

C#作為微軟的旗艦編程語言,深受程序員喜愛,是編寫高效應用程序的首選語言。Visual C# 2017提供了大量新功能,《Visual C#從入門到精通(第9版)》圍繞語言的基礎知識和這些新功能全面介紹了如何利用Visual Studio 2017和.NET Framework 4.6.1編寫C#應用程序。《Visual C#從入門到精通(第9版)》沿襲深受讀者歡迎的Step by Step風格,通過合理的練習引導讀者逐步構建在Windows 10上運行的應用程序、訪問SQL Server數據庫以及開發多線程應用等。
《Visual C#從入門到精通(第9版)》共27章,結構清晰,敘述清楚。所有練習均在Visual Studio 2017簡體中文版上進行過全面演練。無論是剛開始接觸面向對象編程的新手,還是打算遷移到C#的C、C++或Java程序員,都可以從本書汲取到新的知識。迅速掌握C#編程技術。
目錄:

第I部分VisualC#和VisualStudio2017概述
第1章歡迎進入C#編程世界 3
1.1開始在VisualStudio2017環境中編程 3
1.2寫第一個程序 6
1.3使用命名空間 11
1.4創建圖形應用程序 13
1.4.1探索通用Windows平臺應用程序 20
1.4.2向圖形應用程序添加代碼 23
1.4.3其他類型的圖形應用程序 25
小結 26
第1章快速參考 26
第2章使用變量、操作符和表達式 27
2.1理解語句 27
2.2使用標識符 27
認識關鍵字 28
2.3使用變量 29
2.3.1命名變量 29
2.3.2聲明變量 29
2.3.3指定數值 30
2.4使用基元數據類型 31
2.4.1未賦值的局部變量 31
2.4.2顯示基元數據類型的值 32
2.5使用算術操作符 37
2.5.1操作符和類型 37
2.5.2深入了解算術操作符 38
2.5.3控制優先級 43
2.5.4使用結合性對表達式進行求值 43
2.5.5結合性和賦值操作符 44
2.6變量遞增和遞減 45
2.7聲明隱式類型的局部變量 46
小結 47
第2章快速參考 47
第3章方法和作用域 49
3.1創建方法 49
3.1.1聲明方法 49
3.1.2從方法返回數據 50
3.1.3使用表達式主體方法 51
3.1.4調用方法 52
3.1.5從方法返回多個值 54
3.2使用作用域 57
3.2.1定義局部作用域 57
3.2.2定義類作用域 58
3.2.3重載方法 58
3.3編寫方法 59
3.3.1重構代碼 63
3.3.2嵌套方法 66
3.4使用可選參數和具名參數 69
3.4.1定義可選參數 70
3.4.2傳遞具名參數 70
3.4.3消除可選參數和具名參數的歧義 71
小結 75
第3章快速參考 76
第4章使用判斷語句 78
4.1聲明布爾變量 78
4.2使用布爾操作符 78
4.2.1理解相等和關系操作符 79
4.2.2理解條件邏輯操作符 79
4.2.3短路求值 80
4.2.4操作符的優先級和結合性總結 80
4.3使用if語句做出判斷 81
4.3.1理解if語句的語法 81
4.3.2使用代碼塊分組語句 82
4.3.3嵌套if語句 83
4.4使用switch語句 88
4.4.1理解switch語句的語法 89
4.4.2遵守switch語句的規則 90
小結 93
第4章快速參考 94
第5章使用復合賦值和循環語句 95
5.1使用復合賦值操作符 95
5.2編寫while語句 96
5.3編寫for語句 100
5.4編寫do語句 102
小結 109
第5章快速參考 109
第6章管理錯誤和異常 111
6.1處理錯誤 111
6.2嘗試執行代碼和捕捉異常 111
6.2.1未處理的異常 113
6.2.2使用多個catch處理程序 114
6.2.3捕捉多個異常 114
6.2.4篩選異常 115
6.2.4傳播異常 119
6.3使用checked和unchecked整數運算 121
6.3.1編寫checked語句 121
6.3.2編寫checked表達式 122
6.4拋出異常 124
6.5使用finally塊 129
小結 130
第6章快速參考 131
第II部分理解C#對象模型
第7章創建并管理類和對象 135
7.1理解分類 135
7.2封裝的目的 135
7.3定義并使用類 136
7.4控制可訪問性 137
7.4.1使用構造器 138
7.4.2重載構造器 139
7.4.3解構對象 146
7.5理解靜態方法和數據 147
7.5.1創建共享字段 148
7.5.2使用const關鍵字創建靜態字段 149
7.5.3理解靜態類 149
7.5.4靜態using語句 149
7.5.5匿名類 152
小結 153
第7章快速參考 153
第8章理解值和引用 155
8.1復制值類型的變量和類 155
8.2理解null值和可空類型 160
8.2.1空條件操作符 161
8.2.2使用可空類型 162
8.2.3理解可空類型的屬性 163
8.3使用ref和out參數 163
8.3.1創建ref參數 164
8.3.2創建out參數 165
8.4計算機內存的組織方式 167
8.5System.Object類 169
8.6裝箱 169
8.7拆箱 170
8.8數據的安全轉型 171
8.8.1is操作符 171
8.8.2as操作符 172
8.8.3復習switch語句 172
小結 175
第8章快速參考 175
第9章使用枚舉和結構創建值類型 177
9.1使用枚舉 177
9.1.1聲明枚舉 177
9.1.2使用枚舉 177
9.1.3選擇枚舉字面值 178
9.1.4選擇枚舉的基礎類型 179
9.2使用結構 181
9.2.1聲明結構 182
9.2.2理解結構和類的區別 183
9.2.3聲明結構變量 185
9.2.4理解結構的初始化 185
9.2.5復制結構變量 189
小結 193
第9章快速參考 193
第10章使用數組 195
10.1聲明和創建數組 195
10.1.1聲明數組變量 195
10.1.2創建數組實例 196
10.1.3填充和使用數組 196
10.1.4創建隱式類型的數組 197
10.1.5訪問單獨的數組元素 198
10.1.6遍歷數組 199
10.1.7數組作為方法參數和返回值傳遞 200
10.1.8復制數組 201
10.1.9使用多維數組 202
10.1.10創建交錯數組 203
10.1.11訪問包含值類型的數組 212
小結 215
第10章快速參考 215
第11章理解參數數組 217
11.1回顧重載 217
11.2使用數組參數 218
11.2.1聲明參數數組 219
11.2.2使用paramsobject[] 220
11.2.3使用參數數組 221
11.3比較參數數組和可選參數 224
小結 226
第11章快速參考 227
第12章使用繼承 228
12.1什么是繼承 228
12.2使用繼承 229
12.2.1復習System.Object類 230
12.2.2調用基類構造器 231
12.2.3類的賦值 232
12.2.4聲明新方法 233
12.2.5聲明虛方法 234
12.2.6聲明重寫方法 235
12.2.7理解受保護的訪問 238
12.3創建擴展方法 243
小結 247
第12章快速參考 247
第13章創建接口和定義抽象類 249
13.1理解接口 249
13.1.1定義接口 250
13.1.2實現接口 250
13.1.3通過接口引用類 252
13.1.4使用多個接口 252
13.1.5顯式實現接口 253
13.1.6接口的限制 254
13.1.7定義和使用接口 255
13.2抽象類 263
13.3密封類 265
13.3.1密封方法 265
13.3.2實現并使用抽象類 266
小結 271
第13章快速參考 272
第14章使用垃圾回收和資源管理 273
14.1對象生存期 273
14.1.1編寫析構器 274
14.1.2為什么要使用垃圾回收器 275
14.1.3垃圾回收器的工作原理 277
14.1.4慎用析構器 277
14.2資源管理 278
14.2.1資源清理方法 278
14.2.2異常安全的資源清理 279
14.2.3using語句和IDisposable接口 279
14.2.4從析構器中調用Dispose方法 281
14.3實現異常安全的資源清理 283
小結 289
第14章快速參考 290
第III部分用C#定義可擴展類型
第15章實現屬性以訪問字段 295
15.1使用方法實現封裝 295
15.2什么是屬性 297
15.2.1使用屬性 299
15.2.2只讀屬性 300
15.2.3只寫屬性 300
15.2.4屬性的可訪問性 301
15.3理解屬性的局限性 301
15.4在接口中聲明屬性 303
15.5生成自動屬性 308
15.6用屬性初始化對象 310
小結 314
第15章快速參考 314
第16章處理二進制數據和使用索引器 317
16.1什么是索引器 317
16.1.1存儲二進制值 317
16.1.2顯示二進制值 318
16.1.3操縱二進制值 318
16.1.4用索引器解決相同問題 320
16.1.5理解索引器的訪問器 322
16.1.6對比索引器和數組 322
16.2接口中的索引器 324
16.3在Windows應用程序中使用索引器 325
小結 331
第16章快速參考 331
第17章泛型概述 333
17.1object的問題 333
17.2泛型解決方案 336
17.2.1對比泛型類和常規類 338
17.2.2泛型和約束 339
17.3創建泛型類 339
17.3.1二叉樹理論 339
17.3.2使用泛型構造二叉樹類 342
17.4創建泛型方法 350
17.5可變性和泛型接口 353
17.5.1協變接口 354
17.5.2逆變接口 356
小結 357
第17章快速參考 358
第18章使用集合 360
18.1什么是集合類 360
18.1.1List<T>集合類 361
18.1.2LinkedList<T>集合類 363
18.1.3Queue<T>集合類 365
18.1.4Stack<T>集合類 366
18.1.5Dictionary<TKey,TValue>集合類 367
18.1.6SortedList<TKey,TValue>集合類 368
18.1.7HashSet<T>集合類 369
18.2使用集合初始化器 371
18.3Find方法、謂詞和Lambda表達式 372
18.4比較數組和集合 375
小結 379
第18章快速參考 379
第19章枚舉集合 381
19.1枚舉集合中的元素 381
19.1.1手動實現枚舉器 382
19.1.2實現IEnumerable接口 386
19.2用迭代器實現枚舉器 388
19.2.1一個簡單的迭代器 388
19.2.2使用迭代器為Tree<TItem>類定義枚舉器 390
小結 392
第19章快速參考 393
第20章分離應用程序邏輯并處理事件 394
20.1理解委托 394
20.1.1.NETFramework類庫的委托例子 395
20.1.2自動化工廠的例子 397
20.1.3不用委托實現工廠控制系統 397
20.1.4用委托實現工廠控制系統 398
20.1.5聲明和使用委托 400
20.2Lambda表達式和委托 407
20.3啟用事件通知 408
20.3.1聲明事件 409
20.3.2訂閱事件 410
20.3.3取消訂閱事件 410
20.3.4引發事件 410
20.4理解用戶界面事件 411
小結 418
第20章快速參考 418
第21章使用查詢表達式來查詢內存中的數據 421
21.1什么是LINQ 421
21.2在C#應用程序中使用LINQ 422
21.2.1選擇數據 424
21.2.2篩選數據 426
21.2.3排序、分組和聚合數據 427
21.2.4聯接數據 429
21.2.5使用查詢操作符 430
21.2.6查詢Tree<TItem>對象中的數據 432
21.2.7LINQ和推遲求值 437
小結 440
第21章快速參考 441
第22章操作符重載 443
22.1理解操作符 443
22.1.1操作符的限制 443
22.1.2重載的操作符 444
22.1.3創建對稱操作符 445
22.2理解復合賦值 447
22.3聲明遞增和遞減操作符 447
22.4比較結構和類中的操作符 448
22.5定義成對的操作符 449
22.6實現操作符 449
22.7理解轉換操作符 455
22.7.1提供內建轉換 455
22.7.2實現用戶自定義的轉換操作符 456
22.7.3再論創建對稱操作符 457
22.7.4添加隱式轉換操作符 457
小結 459
第22章快速參考 460
第IV部分用C#構建UWP應用
第23章使用任務提高吞吐量 463
23.1使用并行處理執行多任務處理 463
23.2用.NETFramework實現多任務處理 464
23.2.1任務、線程和線程池 465
23.2.2創建、運行和控制任務 466
23.2.3使用Task類實現并行處理 469
23.2.4使用Parallel類對任務進行抽象 478
23.2.5什么時候不要使用Parallel類 482
23.3取消任務和處理異常 484
23.3.1協作式取消的原理 485
23.3.2為Canceled和Faulted任務使用延續 496
小結 496
第23章快速參考 497
第24章通過異步操作提高響應速度 500
24.1實現異步方法 501
24.1.1定義異步方法:問題 501
24.1.2定義異步方法:解決方案 503
24.1.3定義返回值的異步方法 508
24.1.4異步方法注意事項 509
24.1.5異步方法和WindowsRuntimeAPI 511
24.1.6任務、內存分配和效率 512
24.2用PLINQ進行并行數據訪問 514
24.2.1用PLINQ增強遍歷集合時的性能 515
24.2.2取消PLINQ查詢 519
24.3同步對數據的并發訪問 519
24.3.1鎖定數據 522
24.3.2用于協調任務的同步基元 523
24.3.3取消同步 525
24.3.4并發集合類 525
24.3.5使用并發集合和鎖實現線程安全的數據訪問 526
小結 535
第24章快速參考 535
第25章實現UWP應用的用戶界面 538
25.1UWP應用的特點 539
25.2使用空白模板構建UWP應用 541
25.2.1實現可伸縮用戶界面 543
25.2.2向UI應用樣式 568
小結 576
第25章快速參考 577
第26章在UWP應用中顯示和搜索數據 578
26.1實現Model-View-ViewModel模式 578
26.1.1通過數據綁定顯示數據 579
26.1.2通過數據綁定修改數據 584
26.1.3為ComboBox控件使用數據綁定 588
26.1.4創建ViewModel 590
26.1.5向ViewModel添加命令 594
26.2用Cortana搜索數據 603
小結 616
第26章快速參考 617
第27章在UWP應用中訪問遠程數據庫 618
27.1從數據庫獲取數據 618
27.1.1創建實體模型 623
27.1.2創建和使用RESTWeb服務 631
27.2通過RESTWeb服務插入、更新和刪除數據 644
小結 660
第27章快速參考 661
譯者后記 662
序: