Visual C#2010從入門到精通 ( 簡體 字) |
作者:[英]John Sharp、周靖譯 | 類別:1. -> 程式設計 -> .NET -> C# |
譯者: |
出版社:清華大學出版社 | 3dWoo書號: 27302 詢問書籍請說出此書號!【缺書】 【不接受訂購】 |
出版日:7/29/2010 |
頁數: |
光碟數:0 |
|
站長推薦:  |
印刷: | 語系: ( 簡體 版 ) |
|
【不接受訂購】 |
ISBN:9787302234289 |
作者序 | 譯者序 | 前言 | 內容簡介 | 目錄 | 序 |
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證) |
作者序: |
譯者序: |
前言:Microsoft Visual C#是一種功能強大、使用簡單的語言,主要面向需要使用Microsoft .NET Framework來創建應用程序的開發者。它在C++和Microsoft Visual Basic的基礎上去蕪存菁,最終成了一種更加清晰、更富有邏輯的語言。C# 1.0于2001年亮相。隨著C# 2.0和Visual Studio 2005的問世,語言中新增了幾個重要的功能,其中包括泛型、迭代器和匿名方法等。隨同Microsoft Visual Studio 2008發布的C# 3.0添加了更多功能,例如擴展方法、lambda表達式以及最有名的語言集成查詢(Language Integrated Query,LINQ)工具。語言的最新版本C# 4.0提供了進一步的增強,它改善了與其他語言和技術的互操作性。新增的功能包括命名和可選參數;dynamic類型,它告訴語言的“運行時”要實現一個對象的晚期綁定;以及協變性和逆變性,它們解決了泛型接口的定義方式所造成的一些問題。C# 4.0利用了最新版本的.NET Framework,新版本也是4.0。在這個版本中,.NET Framework添加了許多新東西,但最重要的就是構成“任務并行庫”(Task Parallel Library,TPL)的類和類型。現在可以使用TPL構建具有良好伸縮性的應用程序,從而快速和簡單地利用多核處理器的強大能力。對Web服務和Windows Communication Foundation(WCF)的支持也得到了擴展;現在可以遵循REST模型和較傳統的SOAP方案構建服務。 Microsoft Visual Studio 2010提供的開發環境使得這些強大的功能變得易于使用,Visual Studio 2010新增的大量向導和增強措施也顯著提高了開發人員的工作效率。 面向的讀者 本書假定你想使用Visual Studio 2010和.NET Framework 4.0學習基礎的C#編程知識。本書將指導你學習C#語言的各種功能,并利用學到的知識構建在Microsoft Windows操作系統上運行的應用程序。學完本書后,會對C#有一個全面、透徹的理解,并會用它構建Windows Presentation Foundation(WPF)應用程序,會用ADO.NET和LINQ訪問Microsoft SQL Server數據庫,會用TPL構建反應靈敏的、易于伸縮的應用程序,并會使用WCF創建REST和SOAP Web服務。 導讀 本書將幫助你掌握在多個基本領域的開發技巧。無論你是剛開始學習編程,還是需要從另一種語言(C、C++、Java或者Visual Basic)轉移到C#,都可以選用本書。根據下表,可以找到自己的最佳起點。
讀者類型
步 驟面向對象編程的新手
1. 按照“安裝本書配套代碼”和“使用練習文件”的步驟來安裝 練習文件。 2. 按照順序閱讀第Ⅰ部分、第Ⅱ部分和第Ⅲ部分的各章。 3. 有了一定經驗之后,如果有興趣,可以繼續完成第Ⅳ部分、 第Ⅴ部分和第Ⅵ部分的學習。
熟悉C語言等過程編程語言,但新涉足C#的讀者
1. 按照“安裝本書配套代碼”和“使用練習文件”的步驟來安裝 練習文件。略讀前5章,獲得對C#和Visual Studio 2010的大致 印象,然后將閱讀重點放在第6∼21章。 2. 有了一定經驗之后,如果有興趣,可以繼續完成第Ⅳ部分、第 Ⅴ部分和第Ⅵ部分的學習。從面向對象編程語言C++或者Java等轉移到C#語言的讀者
1. 按照“安裝本書配套代碼”和“使用練習文件”的步驟來安裝 練習文件。 2. 略讀前7章,獲得對C#語言和Visual Studio 2010的大致印象, 然后將閱讀重點放在第8∼21章。 3. 有關構建Windows應用程序和使用數據庫的信息,參見第Ⅳ 部分和第Ⅴ部分。 4. 有關構建可伸縮應用程序和Web服務的信息,請參見第Ⅵ部分。從Visual Basic 6遷移到C#的讀者
1. 按照“安裝本書配套代碼”和“使用練習文件”的步驟來安裝 練習文件。 2. 按照順序閱讀第Ⅰ部分、第Ⅱ部分和第Ⅲ部分的各章。 3. 有關構建Windows應用程序的信息,請參見第Ⅳ部分。 4. 有關訪問數據庫的信息,請參見第Ⅴ部分。 5. 有關創建可伸縮應用程序和Web服務的信息,請參見第Ⅵ部分。 6. 閱讀每章末尾的“快速參考”小節,了解C#特有的構造。
做完所有練習之后再將本書作為參考書使用的讀者
1. 使用本書目錄找到與特定主題相關的信息。 2. 閱讀每章最后的“快速參考”,查看對當前章所介紹的語法和 技術的簡單回顧。本書的約定和特色 本書采用了少量約定,目的是使內容更容易理解。正式閱讀本書之前,先看一看下面的敘述,我解釋了全書采用的約定,并指出了本書的一些有用的特色。 約定 * 每個“練習”都是一系列任務。每個任務都采用一系列已編號的操作步驟的形式。項目符號(?)表明練習只有一個步驟。 * 標注有“提示”的特色段落提供了與成功完成一個步驟有關的附加信息或者其他方法。 * 標注有“重要提示”的特色段落指出繼續下文學習之前應該檢查的信息。 * 需要讀者手動輸入的文本用黑體突出顯示。 * 兩個鍵名之間的加號(+)意味著必須同時按下這兩個鍵。例如,“按Alt+Tab鍵”意味著按住Alt鍵不放,然后按Tab鍵。 * 描述菜單操作時,采取“文件”|“打開”的形式,它的意思是指從“文件”菜單中選擇“打開”命令。 其他特色 書中會穿插一些加框的“補充內容”,它們提供了與練習有關的更深入的信息。這些補充內容可能包括背景資料、設計技巧或者與當前正在討論的主題有關的其他信息。 每一章都以一個“快速參考”結尾,它以表格形式總結了完成本章任務所需的操作。 硬件和軟件要求 為了完成本書的實戰練習,需準備以下硬件和軟件。 * Microsoft Windows 7家庭高級版,Windows 7專業版,Windows 7企業版或者Windows 7旗艦版。練習也可使用Microsoft Windows Vista(需安裝Service Pack 2或1) * Microsoft Visual Studio 2010標準版,Visual Studio 2010專業版或者Microsoft Visual C# 2010學習版和Microsoft Visual Web Developer 2010學習版 * Microsoft SQL Server 2008 Express(所有版本的Visual Studio 2010、Visual C# 2010學習版和Visual Web Developer 2010學習版都提供了這個組件) * 1.6 GHz或更快的處理器。第27章和第28章要求多核處理器 * x32處理器需要1 GB的可用物理內存,x64處理器需要2 GB的可用物理內存 * 至少256色的顯示器(1024×768或更高分辨率) * CD-ROM或DVD-ROM驅動器 * Microsoft鼠標或其他兼容指點設備 此外,還需以Administrator(管理員)身份登錄計算機,以配置SQL Server 2008 Express和進行實戰演練。 范例代碼 在本書的配套網絡資源中,包含練習時會用到的范例代碼。使用這些范例代碼,讀者不再需要浪費時間創建和練習無關的文件。借助于這些練習文件和課程中描述的步驟,讀者可以在實踐中學習,這是迅速掌握并記住新的編程技能的一種簡單、高效的方式。 安裝本書配套代碼 按下列步驟操作,在計算機上安裝本書配套代碼,即可使用它們進行練習。 1. 在Internet Explorer或其他網頁瀏覽器的地址欄輸入transbot.blog.163.com。 2. 找到《Visual C# 2010從入門到精通》博客文章,根據文章中的提示下載安裝包。 3. 執行下載回來的安裝文件(Setup.exe),安裝到以下位置:
文檔?\Microsoft Press\Visual CSharp Step by Step (也可直接訪問譯者的網盤http://transbot.ys168.com,選擇正確的目錄下載練習文件和其他相關資源。) 使用練習文件 本書每一章都解釋了在什么時候以及如何使用必要的練習文件。需要用到一個練習文件的時候,書中會給出相應的指示,以打開正確的文件。 如果想知道所有細節,可以參見下表,其中列出了本書要用到的所有Visual Studio 2010項目和解決方案,它們以文件夾的形式進行分組,非常便于查找。在許多情況下,練習中為同一個項目提供了起始文件和完成之后的版本,以方便你參考。已完成的項目存儲在帶有一個“- Complete”后綴的文件夾中。
項目名稱
說 明
第1章
TextHello
這是開始的第一個項目。它逐步指導你創建一個簡單的程序,以便顯示一段歡迎文本
WPFHello
該項目使用WPF技術在窗口中顯示歡迎消息
第2章
PrimitiveDataTypes
該項目演示如何通過使用各個基本類型來聲明變量,如何向這些變量賦值,以及如何在窗口中顯示它們的值
MathsOperators
該程序介紹了算術操作符(+、–、*、/、%)
第3章
Methods
在這個項目中,將改進上一個項目的代碼,體會如何使用方法來搭建代碼的結構 續表 項目名稱
說 明
第3章
DailyRate
該項目將指導你寫自己的方法,運行方法,以及使用Visual Studio 2010調試器來單步執行方法
使用可選參數的DailyRate
這個項目展示了如何定義一個方法來獲取可選參數,以及如何使用命名參數來調用方法
第4章
Selection
該項目演示如何使用嵌套if語句來實現復雜的邏輯,例如比較兩個日期的相等性
SwitchStatement
這個簡單的程序使用一個switch語句將字符轉換成相應的XML形式
第5章
WhileStatement
該項目使用一個while語句來逐行讀取源文件的內容,并在一個Windows窗體上的文本框中顯示每一行
DoStatement
該項目使用一個do語句將十進制數轉換成八進制形式
第6章
MathsOperators
該項目對第2章的MathsOperators項目進行了改進,試驗會造成程序執行失敗的各種未處理的異常。然后,使用try和catch關鍵字使應用程序變得更可靠,最終不會因為錯誤的輸入或操作而執行失敗
第7章
Classes
該項目介紹定義自己的類的基礎知識,最后為它添加了public構造器、方法和private字段。另外,還介紹如何使用new關鍵字創建類的實例,以及如何定義靜態方法和字段
第8章
Parameters
該程序演示值類型和引用類型的參數的區別,還演示如何使用ref和out關鍵字
第9章
StructsAndEnums
該項目定義一個struct類型來表示一個日歷日期
第10章
Cards Using Arrays
該項目使用數組來建模紙牌游戲中的一手牌
Cards Using Collections
該項目演示如何使用集合而不是數組來重新構建紙牌游戲
第11章
ParamsArrays
該項目演示如何使用params關鍵字來創建一個方法,這個方法可以接受任意數量的int參數
第12章
Vehicles
該項目通過使用繼承創建了一個簡單的交通工具類,還演示了如何定義一個虛方法
ExtensionMethod
該項目演示如何為int類型創建一個擴展方法,提供一個方法將一個整數從十進制轉換成其他進制 續表 項目名稱
說 明
第13章
Drawing Using Interfaces
這個項目實現了一個圖形繪圖包的一部分。項目用接口定義了要由幾何圖形對象公開并實現的方法
Drawing
這個項目擴展了Drawing Using Interfaces項目,將幾何圖形對象的常用功能集成到抽象類中
第14章
UsingStatement
該項目回顧了第5章的一小段代碼,解釋了為什么它不是異常安全的,并展示了如何使用using語句使代碼變成異常安全的
第15章
WindowProperties
該項目展示了一個簡單的Windows應用程序,該程序使用幾個屬性顯示其主窗口的大小。顯示內容隨用戶重設窗口大小而自動更新
AutomaticProperties
該項目演示如何為一個類創建自動屬性,如何用它們初始化類的實例
第16章
Indexers
該項目使用了兩個索引器(C#的“有參屬性”),一個根據姓名查找某人的電話號碼,另一個根據電話號碼查找某人的姓名
第17章
Clock Using Delegates
該項目顯示一個世界時鐘,除了顯示本地時間,還顯示了倫敦、紐約和東京時間。應用程序使用委托來開始和停止時鐘顯示
Clock Using Events
世界時鐘的這一個版本使用事件來開始和停止時鐘顯示
第18章
BinaryTree
該項目演示了如何使用泛型來生成一個類型安全的結構,該結構中可以包含任何類型的元素
BuildTree
該項目演示了如何使用泛型來實現一個類型安全的方法,該方法可以獲取任何類型的參數
BinaryTreeTest
該項目用于測試,創建在BinaryTree項目中定義的Tree類型的實例
第19章
BinaryTree
該項目演示了如何實現泛型IEnumerator接口,以便為泛型Tree類創建一個枚舉器
IteratorBinaryTree
該解決方案用一個迭代器為泛型Tree類生成一個枚舉器
EnumeratorTest
該項目測試了用于Tree類的枚舉器和迭代器
第20章
QueryBinaryTree
該項目演示了如何使用LINQ查詢從一個二叉樹對象檢索數據
第21章
ComplexNumbers
該項目定義了一個新類型來建模復數,并為這種類型實現了常用的操作符 續表 項目名稱
說 明
第22章
BellRingers
該項目是一個Windows Presentation Foundation應用程序,演示了如何定義樣式和使用基本的WPF控件
第23章
BellRingers
該項目是對第22章所建應用程序的一個擴展,但在用戶界面上新增了下拉菜單和彈出菜單
第24章
OrderTickets
該項目以客戶訂單信息為例,演示了如何在WPF應用程序中校驗用戶輸入,從而實現業務規則第25章
ReportOrders
該項目演示如何用ADO.NET代碼訪問數據庫。該應用程序從Northwind數據庫的Orders表中檢索信息
LINQOrders
該項目演示了如何使用LINQ to SQL來訪問數據庫以及如何檢索Northwind數據庫的Orders表的信息
第26章
Suppliers
該項目演示如何在WPF應用程序中使用數據綁定,以便在一個WPF窗體的控件中顯示和格式化從數據庫獲取的數據。用戶還可以使用這個應用程序修改Northwind數據庫的Products表中的信息
第27章
GraphDemo
該項目在一個WPF窗體中生成并顯示一張復雜的圖。用單線程執行計算
GraphDemo Using Tasks
這個版本的GraphDemo項目創建多個任務來并行執行圖形計算
GraphDemo Using Tasks that Return Results
這是GraphDemo Using Tasks項目的擴展版本,展示了如何從任務返回數據
GraphDemo Using the Parallel Class
這個版本的GraphDemo項目使用Parallel類來提煉創建和管理任務的過程。
GraphDemo Canceling Tasks
這個項目展示了如何實現“取消”,以一種得體的、受控制的方式,在任務完成前將其取消
ParallelLoop
這個應用程序展示了在什么時候不該使用Parallel類創建和運行任務
第28章
CalculatePI
該項目用一個統計采樣算法來計算PI的約值。它使用了并行任務
PLINQ
該項目展示了一些使用并行任務,用PLINQ來查詢數據的例子
第29章
ProductInformationService
該項目用WCF構建了一個SOAP Web服務。該Web服務公開了一個方法,以返回Northwind數據庫中的產品的定價信息
ProductDetailsService
這個項目用WCF構建了一個REST Web服務。該Web服務公開了一個方法,以返回Northwind數據庫中的一個指定的產品的詳細信息 續表 項目名稱
說 明
第29章
ProductDetailsContracts
該項目包含由ProductDetailsService Web服務實現的服務和數據契約
ProductClient
該項目展示了如何創建一個WPF應用程序來使用Web服務。它展示了如何調用ProductInformationService和ProductDetailsService Web服務中的Web方法卸載練習文件 按以下步驟從計算機中移除代碼。 1. 從控制面板中選擇“添加或刪除程序”。 2. 在“當前安裝的程序”列表中,選擇“Microsoft Visual C# 2010 Step By Step”。 3. 單擊“刪除”按鈕。 4. 根據屏幕上的提示刪除范例代碼。 本 書 支 持 我們盡了最大努力來保證本書以及配套網絡資源的準確性。任何勘誤或增補將添加到Microsoft Press Online Developer Tools網站,網址為www.microsoft.com/learning/books/online/developer (本書中文版勘誤會在譯者博客http://transbot.blog.163.com中發布)。 Microsoft Press還在線提供了對所有書籍和配套網絡資源的支持,網址為 http://www.microsoft.com/learning/support/books/。 問題和建議 有關本書的任何意見、問題或想法,請通過電子郵件形式發送給Microsoft Press,郵件地址為mspinput@microsoft.com。 請注意,以上方式并不提供對微軟軟件產品的支持。 ? 本書將路徑“C:\Users\YourName\Documents”或“C:\Users\YourName\My Documents”簡單地稱為“Documents”或“文檔”文件夾。——譯注
譯 者 序
C#(讀作“C sharp”)作為一種編程語言,設計宗旨是創建在.NET Framework上運行的各種應用程序。C#簡單、功能強大、類型安全,而且是完全面向對象的。C# 憑借在許多方面的創新,在保持C語言風格的表現力和雅致特征的同時,實現了應用程序的快速開發。 Visual C#是Microsoft 對C#語言的實現。而Visual Studio作為Microsoft的一款“交互開發環境”(IDE)產品,通過功能齊全的代碼編輯器、編譯器、項目模板、設計器、代碼向導、功能強大而易用的調試器以及其他工具,實現了對Visual C#的支持。通過.NET Framework 類庫(FCL),可訪問許多操作系統服務以及其他許多有用的、精心設計的類,這些類可顯著加發開發過程。 本書是為有志于進行Visual C#開發的人員量身定制的一本“快速上手”指南。和市面上簡單地羅列各種語法元素的書籍不同,本書使用了大量生動、實際的例子,逐步驟地指引你在Visual Studio中進行C#編程。 隨著學習的深入,你將牢牢地掌握C#語言的各種概念,并很快就能掌握編寫各種實際的C#程序的技巧。這些程序從簡單的控制臺應用程序,一直到更高級的WPF窗體應用程序;從簡單的“Hello World”程序,一直到更實用的數據庫應用程序、用TPL(任務并行庫)來編寫的多線程應用程序以及WCF Web服務。 整個學習過程非常清晰和直接。在本書上一版《Visual C# 2008從入門到精通》的基礎上,新的一版進行了大量修訂和增補。在內容的銜接和對新的C# 4.0的側重上,更是下足了功夫。如果你是一名C#的新手,可以選擇從頭讀到尾的方式,整個閱讀過程應該是流暢、沒有阻礙的。如果你是一名有經驗的C#開發者,那么可以選擇性地閱讀自己感興趣的主題,比如自己感覺比較薄弱的環節以及和C# 4.0新特性有關的章節。具體可以參見本書前言的“導讀”一節。 其實任何書都是有瑕疵的。翻譯一本書的過程其實和寫一個程序的過程差不多。無論在這個過程中的感覺有多么“完美”,最后總能找出這樣或那樣的錯誤或者并不完美的地方。因此,一本沒有勘誤、沒有后期維護的書不能算是一本真正的好書。根據傳統,本書在付印之后,我的博客會開辟它的專欄,提供相關資源(比如源代碼、練習文件)以及勘誤的下載,詳情請訪問http://transbot.blog.163.com。本書需要重印的時候,我也會敦促出版商將已經確定的勘誤反映到新的一刷中。 在閱讀本書的同時,推薦關注同樣由我翻譯、Jeffery Richter著的《CLR via C#(第3版)》。這本書從更底層的角度講解了C#以及它面向的“公共語言運行時”(Common Language Runtime,CLR),幫助你加深對語言精妙之處的體驗,同時對語言有一個更牢靠的掌握,加深和鞏固你在本書中學到的知識。 簡單地說,像《Visual C# 2010從入門到精通》這樣的書是將重點放在特定的應用程序類型上,幫助你“自上而下”地學習;而《CLR via C#(第3版)》這樣的書是將重點放在開發平臺上面,幫助你“自下而上”地學習。
周 靖 2010.7@北京
|
內容簡介: C#作為微軟的旗艦編程語言,深受程序員喜愛,是他們編寫高效應用程序的首選語言。Visual C# 2010新增了大量可圈可點的豐富特性,本書圍繞著基礎知識和這些新特性全面介紹了如何利用Visual Studio 2010和.NET Framework 4.0編寫應用程序。書中沿襲深受讀者歡迎的Step by Step風格,通過豐富的練習引導讀者逐步構建Windows應用程序,訪問SQL Server數據庫,開發ASP.NET Web應用程序,創建并使用Web服務等。 全書共29章,結構清晰,敘述清楚。所有練習均在Visual Studio 2010簡體中文版上進行過全面演練。無論是剛開始接觸面向對象編程的新手,還是打算轉移到C#的具有C,C++或者Java基礎的程序員,都可以從本書中吸取到新的知識。
|
目錄:第I部分 Visual C#和Visual Studio 2010概述 第1章 歡迎進入C#編程世界 3 1.1 開始在Visual Studio 2010環境中 編程 3 1.2 編寫第一個程序 8 1.3 使用命名空間 12 1.4 創建圖形應用程序 15 第1章快速參考 22 第2章 使用變量、操作符和表達式 25 2.1 理解語句 25 2.2 使用標識符 26 2.3 使用變量 27 2.3.1 命名變量 27 2.3.2 聲明變量 28 2.4 使用基本數據類型 28 2.4.1 未賦值的局部變量 29 2.4.2 顯示基本數據類型值 29 2.5 使用算術操作符 33 2.5.1 操作符和數據類型 33 2.5.2 深入了解算術操作符 35 2.5.3 控制優先級 37 2.5.4 使用結合性對表達式進行 求值 38 2.5.5 結合性和賦值操作符 38 2.6 變量的遞增和遞減 39 2.7 聲明隱式類型的局部變量 40 第2章快速參考 42 第3章 方法和作用域 43 3.1 創建方法 43 3.1.1 聲明方法 43 3.1.2 從方法返回數據 44 3.1.3 調用方法 46 3.2 使用作用域 48 3.2.1 定義局部作用域 48 3.2.2 定義類的作用域 49 3.2.3 重載方法 50 3.3 編寫方法 50 3.4 使用可選參數和命名參數 57 3.4.1 定義可選參數 58 3.4.2 傳遞命名參數 58 3.4.3 消除可選參數和命名參數的 歧義 59 第3章快速參考 63 第4章 使用決策語句 65 4.1 聲明布爾變量 65 4.2 使用布爾操作符 66 4.2.1 理解相等和關系操作符 66 4.2.2 理解條件邏輯操作符 66 4.2.3 短路求值 67 4.2.4 操作符的優先級和結合性 總結 68 4.3 使用if語句來做出決策 68 4.3.1 理解if語句的語法 69 4.3.2 使用代碼塊來對語句進行 分組 70 4.3.3 嵌套if語句 70 4.4 使用switch語句 75 4.4.1 理解switch語句的語法 75 4.4.2 遵守switch語句的規則 76 第4章快速參考 79 第5章 使用復合賦值和循環語句 81 5.1 使用復合賦值操作符 81 5.2 使用while語句 82 5.3 編寫for語句 86 5.4 編寫do語句 88 第5章快速參考 95 第6章 管理錯誤和異常 97 6.1 處理錯誤 97 6.2 嘗試執行代碼和捕捉異常 98 6.2.1 未處理的異常 99 6.2.2 使用多個catch處理程序 100 6.2.3 捕捉多個異常 100 6.3 使用checked和unchecked整數 運算 104 6.3.1 編寫checked語句 105 6.3.2 編寫checked表達式 106 6.4 拋出異常 107 6.5 使用finally塊 111 第6章快速參考 112
第II部分 理解C#語言
第7章 創建并管理類和對象 117 7.1 理解分類 117 7.2 封裝的目的 118 7.3 定義并使用類 118 7.4 控制可訪問性 119 7.4.1 使用構造器 120 7.4.2 重載構造器 121 7.5 理解靜態方法和數據 128 7.5.1 創建共享字段 129 7.5.2 使用const關鍵字創建 靜態字段 130 7.5.3 靜態類 130 7.5.4 匿名類 132 第7章快速參考 134 第8章 理解值和引用 135 8.1 復制值類型的變量和類 135 8.2 理解null值和可空類型 139 8.2.1 使用可空類型 140 8.2.2 理解可為空類型的屬性 141 8.3 使用ref和out參數 142 8.3.1 創建ref參數 142 8.3.2 創建out參數 143 8.4 計算機內存的組織方式 145 8.5 System.Object類 147 8.6 裝箱 147 8.7 拆箱 148 8.8 數據類型的安全轉換 149 8.8.1 is操作符 150 8.8.2 as操作符 150 第8章快速參考 152 第9章 使用枚舉和結構來創建 值類型 155 9.1 使用枚舉 155 9.1.1 聲明枚舉 155 9.1.2 使用枚舉 156 9.1.3 選擇枚舉文字常量值 157 9.1.4 選擇枚舉的基本類型 157 9.2 使用結構 159 9.2.1 聲明結構 161 9.2.2 理解結構和類的區別 162 9.2.3 聲明結構變量 163 9.2.4 理解結構的初始化 164 9.2.5 復制結構變量 167 第9章快速參考 170 第10章 使用數組和集合 171 10.1 什么是數組 171 10.1.1 聲明數組變量 171 10.1.2 創建數組實例 172 10.1.3 初始化數組變量 173 10.1.4 創建隱式類型的數組 173 10.1.5 訪問單獨的數組元素 174 10.1.6 遍歷數組 175 10.1.7 復制數組 176 10.1.8 使用多維數組 177 10.1.9 使用數組來玩牌 178 10.2 什么是集合類 184 10.2.1 ArrayList集合類 185 10.2.2 Queue集合類 187 10.2.3 Stack集合類 188 10.2.4 Hashtable集合類 189 10.2.5 SortedList集合類 190 10.2.6 使用集合初始化器 191 10.2.7 比較數組和集合 192 10.2.8 使用集合類來玩牌 192 第10章快速參考 195 第11章 理解參數數組 197 11.1 使用數組參數 199 11.1.1 聲明params數組 200 11.1.2 使用params object[] 201 11.1.3 使用params數組 203 11.2 比較參數數組和可選參數 205 第11章快速參考 207 第12章 使用繼承 207 12.1 什么是繼承 207 12.2 使用繼承 208 12.2.1 調用基類構造器 209 12.2.2 類的賦值 210 12.2.3 聲明new方法 212 12.2.4 聲明virtual方法 213 12.2.5 聲明override方法 214 12.2.6 理解protected訪問 217 12.3 理解擴展方法 222 第12章快速參考 225 第13章 創建接口和定義抽象類 227 13.1 理解接口 227 13.1.1 定義接口 228 13.1.2 實現接口 228 13.1.3 通過接口來引用一個類 230 13.1.4 使用多個接口 230 13.1.5 顯式實現接口 230 13.1.6 接口的限制 232 13.1.7 定義和使用接口 233 13.2 抽象類 241 13.3 密封類 243 13.3.1 密封方法 243 13.3.2 實現并使用一個抽象類 243 第13章快速參考 248 第14章 使用垃圾回收和資源管理 251 14.1 對象的生存期 251 14.1.1 編寫析構器 252 14.1.2 為什么要使用垃圾回收器 254 14.1.3 垃圾回收器的工作機理 255 14.1.4 慎用析構器 255 14.2 資源管理 256 14.2.1 disposal方法 256 14.2.2 異常安全的disposal方法 257 14.2.3 using語句 257 14.2.4 從析構器中調用Dispose 方法 259 14.3 實現異常安全的disposal 260 第14章快速參考 263
第III部分 創 建 組 件
第15章 實現屬性以訪問字段 267 15.1 使用方法來實現封裝 267 15.2 什么是屬性 269 15.2.1 使用屬性 271 15.2.2 只讀屬性 271 15.2.3 只寫屬性 272 15.2.4 屬性的可訪問性 272 15.3 理解屬性的局限性 273 15.4 在接口中聲明屬性 275 15.5 生成自動屬性 277 15.6 使用屬性來初始化對象 279 第15章快速參考 283 第16章 使用索引器 285 16.1 什么是索引器 285 16.1.1 沒有使用索引器的例子 285 16.1.2 使用索引器的同一個例子 287 16.1.3 理解索引器的accessor 289 16.1.4 對比索引器和數組 290 16.2 接口中的索引器 292 16.3 在Windows應用程序中使用 索引器 293 第16章快速參考 297 第17章 中斷程序流程并處理事件 299 17.1 聲明和使用委托 299 17.1.1 自動化工廠的例子 300 17.1.2 不使用委托來實現工廠 300 17.1.3 使用委托來實現工廠 301 17.1.4 使用委托 303 17.2 lambda表達式和委托 308 17.2.1 創建方法適配器 308 17.2.2 將lambda表達式作為適配器 使用 309 17.2.3 lambda表達式的形式 309 17.3 啟用事件通知 311 17.3.1 聲明事件 311 17.3.2 訂閱事件 312 17.3.3 取消訂閱事件 313 17.3.4 引發事件 313 17.4 理解WPF用戶界面事件 313 第17章快速參考 319 第18章 泛型概述 321 18.1 object存在的問題 321 18.2 泛型解決方案 323 18.2.1 對比泛型類與泛化類 325 18.2.2 泛型和約束 325 18.3 創建泛型類 325 18.3.1 二叉樹理論 325 18.3.2 使用泛型構造二叉樹類 328 18.4 創建泛型方法 337 18.5 可變性和泛型接口 340 18.5.1 協變接口 341 18.5.2 逆變接口 343 第18章快速參考 345 第19章 枚舉集合 347 19.1 枚舉集合中的元素 347 19.1.1 手動實現枚舉器 348 19.1.2 實現IEnumerable接口 352 19.2 使用迭代器來實現枚舉器 354 19.2.1 一個簡單的迭代器 354 19.2.2 使用迭代器為Tree 類定義枚舉器 356 第19章快速參考 358 第20章 使用查詢表達式來查詢 內存中的數據 361 20.1 什么是語言集成查詢 361 20.2 在C#應用程序中使用LINQ 362 20.2.1 選擇數據 363 20.2.2 篩選數據 366 20.2.3 排序、分組和聚合數據 366 20.2.4 聯接數據 368 20.2.5 使用查詢操作符 370 20.2.6 查詢Tree對象中的 數據 372 20.2.7 LINQ和推遲求值 377 第20章快速參考 380 第21章 操作符重載 383 21.1 理解操作符 383 21.1.1 操作符的限制 384 21.1.2 重載的操作符 384 21.1.3 創建對稱操作符 385 21.2 理解復合賦值 387 21.3 聲明遞增操作符和遞減操作符 388 21.4 比較結構和類中的操作符 389 21.5 定義操作符對 390 21.6 實現操作符 391 21.7 理解轉換操作符 397 21.7.1 提供內建轉換 397 21.7.2 實現用戶自定義的轉換操作符 398 21.7.3 再論創建對稱操作符 399 21.7.4 添加隱式轉換操作符 399 第21章快速參考 402
第IV部分 操縱Windows應用程序
第22章 Windows Presentation Foundation概述 405 22.1 創建WPF應用程序 405 22.2 在窗體上添加控件 418 22.2.1 使用WPF控件 418 22.2.2 動態更改屬性 425 22.3 處理WPF窗體中的事件 429 第22章快速參考 434 第23章 收集用戶輸入 437 23.1 菜單設計原則和樣式 437 23.2 菜單和菜單事件 438 23.2.1 創建菜單 438 23.2.2 處理菜單事件 443 23.3 快捷菜單 449 23.4 Windows通用對話框 453 23.5 增強WPF應用程序的響應能力 456 第23章快速參考 464 第24章 執行校驗 467 24.1 驗證數據 467 用戶輸入驗證策略 467 24.2 示例:訂票系統 468 24.2.1 使用數據綁定執行校驗 469 24.2.2 改變校驗時機 484 第24章快速參考 487
第V部分 管 理 數 據
第25章 查詢數據庫中的信息 491 25.1 使用ADO.NET查詢數據庫 491 25.1.1 Northwind數據庫 492 25.1.2 創建數據庫 492 25.1.3 使用ADO.NET查詢訂單 信息 494 25.2 使用LINQ to SQL查詢數據庫 503 25.2.1 定義實體類 503 25.2.2 創建并運行LINQ to SQL 查詢 505 25.2.3 推遲取回和立即取回 507 25.2.4 聯接表和創建關系 507 25.2.5 再論推遲取回和立即取回 511
25.2.6 定義自定義的 DataContxt類 512 25.2.7 用LINQ to SQL查詢 訂單信息 513 第25章快速參考 517 第26章 使用實體框架和數據綁定顯示 和編輯數據 519 26.1 通過實體框架進行數據綁定 520 26.2 通過數據綁定修改數據 534 26.2.1 更新現有數據 534 26.2.2 處理沖突的更新 535 26.2.3 添加和刪除數據 537 第26章快速參考 545
第VI部分 使用Visual Studio 2010構建專業解決方案
第27章 任務并行庫入門 549 27.1 為何使用并行處理來執行 多任務處理 550 27.2 在桌面應用程序中實現多任務 處理 551 27.2.1 任務、線程和線程池 552 27.2.2 創建、運行和控制任務 553 27.2.3 使用Task類實現并行處理 557 27.2.4 使用Parallel類對任務進行 抽象 564 27.2.5 什么時候不使用Parallel類 568 27.2.6 從任務返回值 571 27.3 任務和UI線程一起使用 574 27.4 取消任務和處理異常 578 27.4.1 協作式取消的原理 578 27.4.2 使用AggregateException類 處理任務異常 586 27.4.3 為Canceled和Faulted任務 使用延續任務 589 第27章快速參考 590 第28章 執行并行數據訪問 593 28.1 用PLINQ并行進行聲明式 數據訪問 593 28.1.1 用PLINQ增強遍歷集合時的 性能 594 28.1.2 指定PLINQ查詢選項 598
28.1.3 取消PLINQ查詢 598 28.2 同步并發的命令式數據訪問 599 28.2.1 鎖定數據 602 28.2.2 TPL提供的同步基元 603 28.2.3 取消和同步基元 609 28.2.4 并發集合類 609 28.2.5 使用并發集合和鎖來實現 線程安全的數據訪問 611 第28章快速參考 620 第29章 創建和使用Web服務 623 29.1 Web服務的定義 623 29.2 Web服務架構 624 29.2.1 SOAP Web服務 625 29.2.2 REST Web服務 627 29.3 構建Web服務 628 29.3.1 創建ProductInformation SOAP Web服務 628 29.3.2 SOAP Web服務、客戶端 和代理 635 29.3.3 消費ProductInformation SOAP Web服務 636 29.3.4 創建ProductDetails REST Web服務 641 28.3.5 使用ProductDetails REST Web服務 647 第29章快速參考 651
|
序: |