編輯推薦
c#經典名著,纍計暢銷16年,wrox精品紅皮書,引領無數程序員進入程序開發殿堂
2013年度十大引進版圖書TOP10
2009年度/2011年度全行業暢銷書,深受廣大讀者喜愛
2008年度優秀技術圖書!
2007年度暢銷的C#銷售圖書!
海報:
內容簡介
《C#高級編程(第9版):C# 5.0 & .NET 4.5.1 》由.NET專傢的夢幻組閤編寫,包含開發人員使用C#所需的所有內容。C#是編寫.NET應用程序的一種語言,本書適閤於希望提高編程技巧的、有經驗的C#程序員,也適用於剛開始使用C#的專業開發人員。
《C#高級編程(第9版):C# 5.0 & .NET 4.5.1 》探討瞭Visual Studio2013和.NET Framework 4.5.1、新的測試驅動開發和並發編程功能。所有示例的源代碼都可以下載,讀者可以立即開始編寫Windows桌麵應用程序、Windows Store應用程序和ASP.NETWeb應用程序。
主要內容
◆ 涵蓋Visual Studio 2013的主要更新和改進,重新討論瞭C#開發人員與VS的交互方式
◆ 提供瞭專業開發人員必須瞭解和掌握的所有C#知識
◆ 研究瞭.NET Framework 4.5.1 GC的更新、Visual Studio 2013新的UI和用於Windows 8.1的Windows Store應用程序
◆ 包含大量有益的示例和用於實踐的代碼,以及處理常見問題的靈活方法
作者簡介
Christian Nagel,是Microsoft RD、Microsoft MVP、thinktecture的閤作夥伴、CN革新技術的奠基人,他還是一位軟件架構師和開發人員,為開發Microsoft .NET解決方案提供培訓和谘詢服務。他具備超過25年的軟件開發經驗。Christian從PDP 11和VAX/VMS係統開始其計算機生涯,熟悉各種語言和平颱。他具備Microsoft技術的深厚功底,編寫瞭大量圖書,並獲得瞭Microsoft認證培訓師和專業開發人員證書。
Jay Glynn,開發軟件的時間超過20年,使用PICK Basic為PICK操作係統編寫應用程序。到目前為止,他使用過Delphi、VBA、Visual Basic、C、Java和C#編寫軟件。他目前是VGT的高級軟件工程師,編寫基於Web的應用程序。
Morgan Skinner,是一位自由顧問,他在開始自己的顧問生涯之前,在Microsoft工作瞭將近10年。
目錄
第Ⅰ部分 C# 語 言
第1章 .NET體係結構 2
1.1 C#與.NET的關係 2
1.2 公共語言運行庫 3
1.2.1 平颱無關性 3
1.2.2 提高性能 3
1.2.3 語言的互操作性 4
1.3 中間語言 6
1.3.1 麵嚮對象和接口的支持 6
1.3.2 不同的值類型和引用類型 7
1.3.3 強數據類型化 7
1.3.4 通過異常處理錯誤 12
1.3.5 特性的使用 12
1.4 程序集 12
1.4.1 私有程序集 13
1.4.2 共享程序集 13
1.4.3 反射 14
1.4.4 並行編程 14
1.4.5 異步編程 14
1.5 .NET Framework類 15
1.6 名稱空間 15
1.7 用C#創建.NET應用程序 16
1.7.1 創建ASP.NET應用程序 16
1.7.2 使用WPF 17
1.7.3 Windows Store應用程序 18
1.7.4 Windows服務 18
1.7.5 WCF 18
1.7.6 Windows WF 19
1.8 C#在.NET企業體係結構中的作用 19
1.9 小結 20
第2章 核心C# 22
2.1 C#基礎 23
2.2 第一個C#程序 23
2.2.1 代碼 23
2.2.2 編譯並運行程序 23
2.2.3 詳細介紹 24
2.3 變量 26
2.3.1 變量的初始化 26
2.3.2 類型推斷 27
2.3.3 變量的作用域 28
2.3.4 常量 30
2.4 預定義數據類型 31
2.4.1 值類型和引用類型 31
2.4.2 CTS類型 32
2.4.3 預定義的值類型 32
2.4.4 預定義的引用類型 35
2.5 流控製 37
2.5.1 條件語句 37
2.5.2 循環 40
2.5.3 跳轉語句 43
2.6 枚舉 44
2.7 名稱空間 46
2.7.1 using語句 47
2.7.2 名稱空間的彆名 48
2.8 Main()方法 48
2.8.1 多個Main()方法 49
2.8.2 給Main()方法傳遞參數 50
2.9 有關編譯C#文件的更多內容 50
2.10 控製颱I/O 52
2.11 使用注釋 54
2.11.1 源文件中的內部注釋 54
2.11.2 XML文檔 54
2.12 C#預處理器指令 56
2.12.1 #define和#undef 57
2.12.2 #if、#elif、#else和#endif 57
2.12.3 #warning和# error 58
2.12.4 #region和#endregion 58
2.12.5 #line 59
2.12.6 #pragma 59
2.13 C#編程規則 59
2.13.1 關於標識符的規則 59
2.13.2 用法約定 60
2.14 小結 66
第3章 對象和類型 67
3.1 創建及使用類 67
3.2 類和結構 68
3.3 類 69
3.3.1 數據成員 69
3.3.2 函數成員 69
3.3.3 隻讀字段 81
3.4 匿名類型 82
3.5 結構 82
3.5.1 結構是值類型 84
3.5.2 結構和繼承 84
3.5.3 結構的構造函數 85
3.6 弱引用 85
3.7 部分類 86
3.8 靜態類 87
3.9 Object類 88
3.9.1 System.Object()方法 88
3.9.2 ToString()方法 89
3.10 擴展方法 90
3.11 小結 91
第4章 繼承 92
4.1 繼承 92
4.2 繼承的類型 92
4.2.1 實現繼承和接口繼承 92
4.2.2 多重繼承 93
4.2.3 結構和類 93
4.3 實現繼承 93
4.3.1 虛方法 94
4.3.2 隱藏方法 95
4.3.3 調用函數的基類版本 96
4.3.4 抽象類和抽象函數 97
4.3.5 密封類和密封方法 97
4.3.6 派生類的構造函數 98
4.4 修飾符 102
4.4.1 可見性修飾符 103
4.4.2 其他修飾符 103
4.5 接口 104
4.5.1 定義和實現接口 105
4.5.2 派生的接口 108
4.6 小結 109
第5章 泛型 110
5.1 泛型概述 110
5.1.1 性能 111
5.1.2 類型安全 112
5.1.3 二進製代碼的重用 112
5.1.4 代碼的擴展 113
5.1.5 命名約定 113
5.2 創建泛型類 113
5.3 泛型類的功能 117
5.3.1 默認值 118
5.3.2 約束 118
5.3.3 繼承 120
5.3.4 靜態成員 121
5.4 泛型接口 122
5.4.1 協變和抗變 122
5.4.2 泛型接口的協變 123
5.4.3 泛型接口的抗變 125
5.5 泛型結構 125
5.6 泛型方法 128
5.6.1 泛型方法示例 128
5.6.2 帶約束的泛型方法 129
5.6.3 帶委托的泛型方法 130
5.6.4 泛型方法規範 131
5.7 小結 132
第6章 數組 133
6.1 同一類型和不同類型的多個對象 133
6.2 簡單數組 134
6.2.1 數組的聲明 134
6.2.2 數組的初始化 134
6.2.3 訪問數組元素 135
6.2.4 使用引用類型 136
6.3 多維數組 137
6.4 鋸齒數組 138
6.5 Array類 139
6.5.1 創建數組 139
6.5.2 復製數組 140
6.5.3 排序 141
6.6 數組作為參數 144
6.6.1 數組協變 144
6.6.2 ArraySegment 144
6.7 枚舉 145
6.7.1 IEnumerator接口 146
6.7.2 foreach語句 146
6.7.3 yield語句 147
6.8 元組 152
6.9 結構比較 152
6.10 小結 155
第7章 運算符和類型強製轉換 156
7.1 運算符和類型轉換 156
7.2 運算符 156
7.2.1 運算符的簡化操作 158
7.2.2 運算符的優先級 162
7.3 類型的安全性 163
7.3.1 類型轉換 163
7.3.2 裝箱和拆箱 167
7.4 比較對象的相等性 168
7.4.1 比較引用類型的相等性 168
7.4.2 比較值類型的相等性 169
7.5 運算符重載 169
7.5.1 運算符的工作方式 170
7.5.2 運算符重載的示例:Vector
……
精彩書摘
2.1 C#基礎
理解瞭C#的用途後,就可以學習如何使用它瞭。本章將介紹C#的基礎知識,本章的內容也是後續章節的基礎,好的開端等於成功的一半。閱讀完本章後,讀者就有足夠的C#知識編寫簡單的程
序瞭,但還不能使用繼承或其他麵嚮對象的特徵。這些內容將在後麵的幾章中討論。
2.2 第一個C#程序
下麵編譯並運行最簡單的C#程序,這是一個簡單的控製颱應用程序,它由把某條消息寫到屏幕上的一個類組成。
2.2.1 代碼
在文本編輯器(如Notepad)中輸入下麵的代碼,把它保存為後綴名為.cs 的文件(如First.cs)。Main()方法如下所示(更多信息參見2.7 節):
using System;
namespace Wrox
{
public class MyFirstClass
{
static void Main()
{
Console.WriteLine("Hello from Wrox.");
Console.ReadLine();
return;
}
}
}
2.2.2 編譯並運行程序
對源文件運行C#命令行編譯器(csc.exe),編譯這個程序:後麵幾章會介紹許多代碼示例。編寫C#程序最常用的技巧是使用Visual Studio2013 生成一個基本項目,再添加自己的代碼。但是,第Ⅰ部分的目的是講授C#語言,為瞭簡單起見,在第17 章之前避免涉及Visual Studio 2013。我們使代碼顯示為簡單的文件,這樣就可以使用任何文本編輯器輸入它們,並在命令行上編譯。
csc First.cs
如果使用csc 命令在命令行上編譯代碼,就應注意.NET 命令行工具(包括csc)隻有在設置瞭某些環境變量後纔能使用。根據安裝.NET(和Visual Studio)的方式,這裏顯示的結果可能與你計算機上的結果不同。
編譯代碼,會生成一個可執行文件First.exe。在命令行或Windows Explorer 上,像運行任何可執行文件那樣運行該文件,得到如下結果:
csc First.cs
Microsoft (R) Visual C# Compiler version 12.021005.1
For C# 5.0
Copyright (C) Microsoft Corporation. All rights reserved.
First.exe
Hello from Wrox.
2.2.3 詳細介紹
首先對C#語法做幾個一般性的解釋。在C#中,與其他C 風格的語言一樣,大多數語句都以分號(;)結尾,語句可以寫在多個代碼行上,不需要使用續行字符。用花括號({})把語句組閤為塊。單行注釋以兩個斜杠字符開頭(//),多行注釋以一條斜杠和一個星號(/*)開頭,以一個星號和一條斜杠(*/)結尾。在這些方麵,C#與C++和Java 一樣,但與Visual Basic 不同。分號和花括號使C#代碼與VisualBasic 代碼有差異很大的外觀。如果你以前使用的是Visual Basic,就應特彆注意每條語句結尾的分號。對於新接觸C 風格語言的用戶,忽略分號常常是導緻編譯錯誤的一個最主要的原因。另一個方麵是,C#區分大小寫,也就是說,變量myVar 與MyVar 是兩個不同的變量。
在上麵的代碼示例中,前幾行代碼與名稱空間有關(如本章後麵所述),名稱空間是把相關類組閤在一起的方式。namespace 關鍵字聲明瞭應與類相關的名稱空間。其後花括號中的所有代碼都被認為是在這個名稱空間中。編譯器在using 語句指定的名稱空間中查找沒有在當前名稱空間中定義但在代碼中引用的類。這非常類似於Java 中的import 語句和C++中的using namespace 語句。
using System;
namespace Wrox
{
在First.cs 文件中使用using 指令的原因是下麵要使用一個庫類System.Console。using System語句允許把這個類簡寫為Console(System 名稱空間中的其他類也與此類似)。如果沒有using,就必如果沒有設置環境變量,有兩種解決方法。第1 種方法是在運行csc 之前,從命令提示符窗口上運行批處理文件%Microsoft Visual Studio 2013%Common7Toolsvsvars32.bat。其中%Microsoft Visual Studio 2013%是Visual Studio 2013 的安裝文件夾。
第2 種方法(更簡單)是使用Visual Studio 2013 命令提示符代替通常的命令提示符窗口。
Visual Studio 2013 命令提示符在菜單“開始”|“程序”| Microsoft Visual Studio 2013|VisualStudio Tools 子菜單下。它隻是一個命令提示符窗口,打開時會自動運行vsvars32.bat。
第2 章 核 心 C#須完全限定對Console.WriteLine()方法的調用,如下所示:
System.Console.WriteLine("Hello from Wrox.");
標準的System 名稱空間包含瞭最常用的.NET 類型。在C#中做的所有工作都依賴於.NET 基類,認識到這一點非常重要;在本例中,我們使用瞭System 名稱空間中的Console 類,以寫入控製颱窗口。C#沒有用於輸入和輸齣的內置關鍵字,而是完全依賴於.NET 類。接著,聲明一個類MyFirstClass。但是,因為該類位於Wrox 名稱空間中,所以其完整的名稱是
Wrox.MyFirstCSharpClass:
class MyFirstCSharpClass
{
所有的C#代碼都必須包含在一個類中。類的聲明包括class 關鍵字,其後是類名和一對花括號。
與類相關的所有代碼都應放在這對花括號中。
下麵聲明方法Main()。每個C#可執行文件(如控製颱應用程序、Windows 應用程序和Windows服務)都必須有一個入口點——Main()方法(注意M大寫):
public static void Main()
{
在程序啓動時調用這個方法。該方法要麼沒有返迴值(void),要麼返迴一個整數(int)。注意,在
C#中方法的定義如下所示:
[modifiers] return_type MethodName([parameters])
{
// Method body. NB. This code block is pseudo-code.
}
第一個方括號中的內容錶示可選關鍵字。修飾符(modifiers)用於指定用戶所定義的方法的某些特性,如可以在什麼地方調用該方法。在本例中,有兩個修飾符public 和static。修飾符public 錶示可以在任何地方訪問該方法,所以可以在類的外部調用它。修飾符static 錶示方法不能在類的實例上執行,因此不必先實例化類再調用。這非常重要,因為我們創建的是一個可執行文
C#高級編程(第9版) C# 5.0 & .NET 4.5.1 [Professional C# 5.0 and .NET 4.5.1] 下載 mobi epub pdf txt 電子書 格式
C#高級編程(第9版) C# 5.0 & .NET 4.5.1 [Professional C# 5.0 and .NET 4.5.1] 下載 mobi pdf epub txt 電子書 格式 2024
C#高級編程(第9版) C# 5.0 & .NET 4.5.1 [Professional C# 5.0 and .NET 4.5.1] mobi epub pdf txt 電子書 格式下載 2024