第1 章.NET 體系結構..................................................................................................................................7
1.1 C#與.NET 的關系............................................................................................................................. 7
1.2 公共語言運行庫................................................................................................................................7
1.2.1 平臺無關性.............................................................................................................................8
1.2.2 提高性能.................................................................................................................................8
1.2.3 語言的互操作性.....................................................................................................................8
1.3 中間語言............................................................................................................................................9
1.3.1 面向對象和接口的支持.......................................................................................................10
1.3.2 相異值類型和引用類型.......................................................................................................10
1.3.3 強數據類型...........................................................................................................................11
1.3.4 通過異常處理錯誤...............................................................................................................15
1.3.5 特性的使用...........................................................................................................................15
1.4 程序集..............................................................................................................................................16
1.4.1 私有程序集...........................................................................................................................16
1.4.2 共享程序集...........................................................................................................................16
1.4.3 反射.......................................................................................................................................17
1.5 .NET Framework 類.........................................................................................................................17
1.6 命名空間..........................................................................................................................................18
1.7 用C#創建.NET 應用程序.............................................................................................................. 18
1.7.1 創建ASP.NET 應用程序.....................................................................................................18
1.7.2 創建Windows 窗體............................................................................................................. 19
1.7.3 使用Windows Presentation Foundation(WPF)....................................................................20
1.7.4 Windows 控件...................................................................................................................... 20
1.7.5 Windows 服務...................................................................................................................... 20
1.7.6 Windows Communication Foundation(WCF)...................................................................... 20
1.8 C#在.NET 企業體系結構中的作用............................................................................................... 20
1.9 小結..................................................................................................................................................21
第2 章C# 基礎........................................................................................................................................... 23
2.1 引言..................................................................................................................................................23
2.2 第一個C#程序................................................................................................................................ 23
2.2.1 代碼.......................................................................................................................................23
2.2.2 編譯并運行程序...................................................................................................................24
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 預定義的引用類型...............................................................................................................34
2.5 流控制..............................................................................................................................................36
2.5.1 條件語句...............................................................................................................................36
2.5.2 循環.......................................................................................................................................39
2.5.3 跳轉語句...............................................................................................................................42
2.6 枚舉..................................................................................................................................................43
2.7 數組..................................................................................................................................................45
2.8 命名空間..........................................................................................................................................45
2.8.1 using 語句............................................................................................................................. 46
2.8.2 命名空間的別名...................................................................................................................47
2.9 Main()方法.......................................................................................................................................48
2.9.1 多個Main()方法...................................................................................................................48
2.9.2 給Main()方法傳送參數.......................................................................................................49
2.10 有關編譯C#文件的更多內容...................................................................................................... 49
2.11 控制臺I/O..................................................................................................................................... 51
2.12 使用注釋........................................................................................................................................52
2.12.1 源文件中的內部注釋.........................................................................................................52
2.12.2 XML 文檔說明...................................................................................................................53
2.13 C#預處理器指令........................................................................................................................... 54
2.13.1 #define 和#undef...............................................................................................................55
2.13.2 #if, #elif, #else 和#endif......................................................................................................55
2.13.3 #warning 和# error............................................................................................................ 56
2.13.4 #region 和#endregion..........................................................................................................56
2.13.5 #line.....................................................................................................................................56
2.13.6 #pragma...............................................................................................................................57
2.14 C#編程規則................................................................................................................................... 57
2.14.1 用于標識符的規則.............................................................................................................57
2.14.2 用法約定.............................................................................................................................58
2.15 小結................................................................................................................................................62
第3 章對象和類型......................................................................................................................................63
3.1 類和結構..........................................................................................................................................63
3.2 類成員..............................................................................................................................................64
3.2.1 數據成員...............................................................................................................................64
3.2.2 函數成員...............................................................................................................................65
3.2.3 只讀字段...............................................................................................................................76
3.3 匿名類型..........................................................................................................................................77
3.4 結構..................................................................................................................................................77
3.4.1 結構是值類型.......................................................................................................................79
3.4.2 結構和繼承...........................................................................................................................79
3.4.3 結構的構造函數...................................................................................................................79
3.5 部分類..............................................................................................................................................80
3.6 靜態類..............................................................................................................................................80
3.7 Object 類.......................................................................................................................................... 81
3.7.1 System.Object 方法.............................................................................................................. 81
3.7.2 ToString()方法......................................................................................................................82
3.8 擴展方法..........................................................................................................................................83
3.9 小結..................................................................................................................................................84
第4 章繼承.............................................................................................................................................84
4.1 繼承的類型......................................................................................................................................84
4.1.1 實現繼承和接口繼承...........................................................................................................84
4.1.2 多重繼承...............................................................................................................................85
4.1.3 結構和類...............................................................................................................................85
4.2 實現繼承..........................................................................................................................................85
4.2.1 虛方法...................................................................................................................................86
4.2.2 隱藏方法...............................................................................................................................87
4.2.3 調用函數的基類版本...........................................................................................................88
4.2.4 抽象類和抽象函數...............................................................................................................88
4.2.5 密封類和密封方法...............................................................................................................89
4.2.6 派生類的構造函數...............................................................................................................89
4.3 修飾符..............................................................................................................................................93
4.3.1 可見性修飾符.......................................................................................................................93
4.3.2 其他修飾符...........................................................................................................................94
4.4 接口..................................................................................................................................................95
4.4.1 定義和實現接口...................................................................................................................96
4.4.2 派生的接口...........................................................................................................................98
4.5 小結................................................................................................................................................100
第5 章數組...........................................................................................................................................101
5.1 簡單數組........................................................................................................................................101
5.1.1 數組的聲明.........................................................................................................................101
5.1.2 數組的初始化.....................................................................................................................101
5.1.3 訪問數組元素.....................................................................................................................102
5.1.4 使用引用類型.....................................................................................................................102
5.2 多維數組........................................................................................................................................103
5.3 鋸齒數組........................................................................................................................................104
5.4 Array 類......................................................................................................................................... 105
5.4.1 屬性.....................................................................................................................................105
5.4.2 創建數組.............................................................................................................................105
5.4.3 復制數組.............................................................................................................................106
5.4.4 排序.....................................................................................................................................107
5.5 數組和集合接口............................................................................................................................110
5.5.1 IEumerable 接口................................................................................................................. 110
5.5.2 ICollection 接口..................................................................................................................110
5.5.3 IList 接口............................................................................................................................ 110
5.6 枚舉................................................................................................................................................110
5.6.1 IEnumerator 接口................................................................................................................111
5.6.2 foreach 語句........................................................................................................................111
5.6.3 yield 語句............................................................................................................................111
5.7 小結................................................................................................................................................116
第6 章運算符和類型強制轉換................................................................................................................116
6.1 運算符............................................................................................................................................116
6.1.1 運算符的簡化操作.............................................................................................................117
6.1.2 條件運算符.........................................................................................................................118
6.1.3 checked 和unchecked 運算符............................................................................................119
6.1.4 is 運算符............................................................................................................................. 119
6.1.5 as 運算符............................................................................................................................ 120
6.1.6 sizeof 運算符...................................................................................................................... 120
6.1.7 typeof 運算符......................................................................................................................120
6.1.8 可空類型和運算符.............................................................................................................120
6.1.9 空接合運算符.....................................................................................................................121
6.1.10 運算符的優先級...............................................................................................................121
6.2 類型的安全性................................................................................................................................121
6.2.1 類型轉換.............................................................................................................................122
6.2.2 裝箱和拆箱.........................................................................................................................124
6.3 對象的相等比較............................................................................................................................125
6.3.1 引用類型的相等比較.........................................................................................................125
6.3.2 值類型的相等比較.............................................................................................................126
6.4 運算符重載....................................................................................................................................126
6.4.1 運算符的工作方式.............................................................................................................127
6.4.2 運算符重載的示例:Vector 結構..................................................................................... 128
6.5 用戶定義的數據類型轉換............................................................................................................134
6.5.1 執行用戶定義的類型轉換.................................................................................................135
6.5.2 多重數據類型轉換.............................................................................................................139
6.6 小結................................................................................................................................................142
第7 章委托和事件....................................................................................................................................143
7.1 委托................................................................................................................................................143
7.1.1 在C#中聲明委托............................................................................................................... 144
7.1.2 在C#中使用委托............................................................................................................... 145
7.1.3 簡單的委托示例.................................................................................................................147
7.1.4 BubbleSorter 示例.............................................................................................................. 149
7.1.5 多播委托.............................................................................................................................151
7.1.6 匿名方法.............................................................................................................................154
7.1.7 (表達式.............................................................................................................................. 155
7.1.8 協變和抗變.........................................................................................................................157
7.2 事件................................................................................................................................................158
7.2.1 從接收器的角度討論事件.................................................................................................159
7.2.2 生成事件.............................................................................................................................160
7.3 小結................................................................................................................................................164
第8 章字符串和正則表達式....................................................................................................................165
8.1 System.String 類............................................................................................................................ 165
8.1.1 創建字符串.........................................................................................................................166
8.1.2 StringBuilder 成員.............................................................................................................. 168
8.1.3 格式化字符串.....................................................................................................................169
8.2 正則表達式....................................................................................................................................174
8.2.1 正則表達式概述.................................................................................................................174
8.2.2 RegularExpressionsPlayaround 示例..................................................................................175
8.2.3 顯示結果.............................................................................................................................177
8.2.4 匹配、組合和捕獲.............................................................................................................178
8.3 小結................................................................................................................................................179
第9 章泛型...........................................................................................................................................180
9.1 概述................................................................................................................................................181
9.1.1 性能.....................................................................................................................................181
9.1.2 類型安全.............................................................................................................................182
9.1.3 二進制代碼的重用.............................................................................................................182
9.1.4 代碼的擴展.........................................................................................................................183
9.1.5 命名約定.............................................................................................................................183
9.2 創建泛型類....................................................................................................................................183
9.3 泛型類的特性................................................................................................................................187
9.3.1 默認值.................................................................................................................................188
9.3.2 約束.....................................................................................................................................188
9.3.3 繼承.....................................................................................................................................190
9.3.4 靜態成員.............................................................................................................................191
9.4 泛型接口........................................................................................................................................191
9.5 泛型方法........................................................................................................................................192
9.6 泛型委托........................................................................................................................................194
9.6.1 執行委托調用的方法.........................................................................................................194
9.6.2 對Array 類使用泛型委托..................................................................................................196
9.7 Framework 的其他泛型類型........................................................................................................ 198
9.7.1 結構Nullable............................................................................................................... 198
9.7.2 EventHandler...............................................................................................199
9.8 小結................................................................................................................................................200
第10 章集合..............................................................................................................................................200
10.1 集合接口和類型..........................................................................................................................201
10.2 列表..............................................................................................................................................203
10.2.1 創建列表...........................................................................................................................205
10.2.2 只讀集合...........................................................................................................................212
10.3 隊列..............................................................................................................................................212
10.4 棧..................................................................................................................................................216
10.5 鏈表..............................................................................................................................................217
10.6 有序表..........................................................................................................................................222
10.7 字典..............................................................................................................................................224
10.7.1 鍵的類型...........................................................................................................................224
10.7.2 字典示例...........................................................................................................................225
10.7.3 Lookup 類......................................................................................................................... 228
10.7.4 其他字典類.......................................................................................................................229
10.8 HashSet........................................................................................................................................ 230
10.9 位數組..........................................................................................................................................233
10.9.1 BitArray.............................................................................................................................233
10.9.2 BitVector32....................................................................................................................... 235
10.10 性能............................................................................................................................................237
10.11 小結............................................................................................................................................238
第11 章Language Integrated Query..........................................................................................................239
11.1 LINQ 概述........................................................................................................................... 240
11.1.1 使用List的查詢.........................................................................................................240
11.1.2 擴展方法...........................................................................................................................251
11.1.3 λ表達式.............................................................................................................................253
11.1.4 LINQ 查詢........................................................................................................................ 254
11.1.5 推遲查詢的執行...............................................................................................................255
11.2 標準的查詢操作符..............................................................................................................258
11.2.1 過濾...................................................................................................................................259
11.2.2 用索引來過濾...................................................................................................................260
11.2.3 類型過濾...........................................................................................................................260
11.2.4 復合的from 子句............................................................................................................. 261
11.2.5 排序...................................................................................................................................263
11.2.6 分組...................................................................................................................................264
11.2.7 對嵌套的對象分組...........................................................................................................266
11.2.8 連接...................................................................................................................................267
11.2.9 設置操作...........................................................................................................................270
11.2.10 分區.................................................................................................................................271
11.2.11 合計操作符.....................................................................................................................273
11. 2 . 12 轉換.................................................................................................................... 275
11.2.13 生成操作符.....................................................................................................................277
11.3 表達式樹..............................................................................................................................278
11.4 LINQ 提供程序................................................................................................................... 282
11.5 小結......................................................................................................................................283 |
|