目 錄
第壹部分 C#基礎
第1章 .NET Framework和C# 2
1.1 .NET Framework 2
1.1.1 公***語言運行時 4
1.1.2 Framework類庫 6
1.1.3 並行計算平臺 8
1.1.4 動態語言運行時 9
1.2 C#語言 9
1.2.1 類型 10
1.2.2 語句和表達式 10
1.2.3 變量和常量 11
1.2.4 標識符和關鍵字 13
1.3 Visual Studio 2010 14
1.4 編寫第壹個程序 16
1.4.1 新建項目 16
1.4.2 添加程序語句 17
1.4.3 運行應用程序 18
1.5 總結 18
1.6 問與答 19
1.7 作業 19
1.7.1 測驗 19
1.7.2 答案 20
1.7.3 練習 21
第2章 理解C#類型 22
2.1 類型 22
2.2 預定義類型 23
2.3 運算符 30
2.3.1 算術運算符和賦值運算符 31
2.3.2 關系運算符 32
2.3.3 邏輯運算符 32
2.3.4 條件運算符 33
2.4 默認值 34
2.5 null和可以為null的類型 35
2.6 強制轉換與轉換 36
2.7 總結 38
2.8 問與答 39
2.9 作業 39
2.9.1 測驗 39
2.9.2 答案 40
2.9.3 練習 40
第3章 理解C#類和對象 41
3.1 面向對象編程 41
3.2 面向組件編程 42
3.3 C#類 42
3.4 作用域和聲明空間 43
3.4.1 訪問性 44
3.4.2 字段和常量 45
3.4.3 屬性 46
3.4.4 方法 49
3.4.5 實例化類 54
3.5 嵌套類 57
3.6 分部類 57
3.7 靜態類 57
3.8 對象初始值設定項 58
3.9 總結 59
3.10 問與答 59
3.11 作業 60
3.11.1 測驗 60
3.11.2 答案 60
3.11.3 練習 61
第4章 繼承、接口和抽象類 62
4.1 繼承和多態 62
4.2 抽象類和抽象成員 69
4.3 接口 70
4.4 總結 73
4.5 問與答 73
4.6 作業 74
4.6.1 測驗 74
4.6.2 答案 74
4.6.3 練習 75
第5章 創建枚舉類型和結構 76
5.1 枚舉類型 76
5.2 結構 80
5.2.1 方法 81
5.2.2 構造和初始化 84
5.3 總結 85
5.4 問與答 85
5.5 作業 86
5.5.1 測驗 86
5.5.2 答案 86
5.5.3 練習 86
第6章 事件及其處理 89
6.1 理解事件 89
6.2 訂閱和取消訂閱 90
6.3 發布事件 93
6.4 引發事件 94
6.5 總結 96
6.6 問與答 96
6.7 作業 97
6.7.1 測驗 97
6.7.2 答案 97
6.7.3 練習 97
第二部分 C#編程
第7章 控制程序流程 100
7.1 選擇語句 100
7.1.1 if語句 100
7.1.2 switch語句 102
7.2 叠代語句 104
7.2.1 while語句 105
7.2.2 do語句 105
7.2.3 for語句 106
7.2.4 foreach語句 108
7.3 跳轉語句 109
7.3.1 break語句 109
7.3.2 continue語句 110
7.3.3 return語句 111
7.4 總結 111
7.5 問與答 111
7.6 作業 111
7.6.1 測驗 111
7.6.2 答案 112
7.6.3 練習 113
第8章 使用字符串和正則表達式 114
8.1 字符串 114
8.1.1 空字符串 116
8.1.2 字符串操作 117
8.2 使用StringBuilder創建可變的字符串 121
8.3 類型格式化 122
8.3.1 標準格式字符串 123
8.3.2 自定義格式字符串 125
8.3.3 復合格式化 126
8.4 正則表達式 127
8.4.1 C#中的正則表達式類 128
8.4.2 使用正則表達式驗證字符串 129
8.4.3 使用正則表達式搜索子串 129
8.5 總結 129
8.6 問與答 129
8.7 作業 130
8.7.1 測驗 130
8.7.2 答案 131
8.7.3 練習 131
第9章 使用數組和集合 132
9.1 數組 132
9.1.1 數組索引 134
9.1.2 數組初始化 134
9.1.3 System.Array類 136
9.2 索引器 136
9.3 泛型集合 138
9.3.1 列表 138
9.3.2 Collection 140
9.3.3 字典 142
9.3.4 集 144
9.3.5 堆棧和隊列 145
9.4 集合初始值設定項 147
9.5 集合接口 148
9.6 可枚舉的對象和叠代器 149
9.7 總結 151
9.8 問與答 151
9.9 作業 152
9.9.1 測驗 152
9.9.2 答案 152
9.9.3 練習 152
第10章 使用異常處理錯誤 154
10.1 理解異常 154
10.2 引發異常 156
10.3 處理異常 157
10.4 重新引發捕獲的異常 162
10.5 溢出和整型算術運算 163
10.6 總結 164
10.7 問與答 165
10.8 作業 165
10.8.1 測驗 165
10.8.2 答案 165
10.8.3 練習 166
第11章 理解泛型 167
11.1 為何應使用泛型 168
11.1.1 理解泛型類型參數 171
11.1.2 泛型類型的默認值 172
11.2 使用泛型方法 172
11.3 創建泛型類 174
11.4 結合使用泛型和數組 176
11.5 使用元組 179
11.6 總結 179
11.7 問與答 180
11.8 作業 180
11.8.1 測驗 180
11.8.2 答案 180
11.8.3 練習 181
第12章 理解查詢表達式 183
12.1 LINQ簡介 183
12.1.1 選擇數據 184
12.1.2 篩選數據 186
12.1.3 對數據進行分組和排序 187
12.1.4 聯接數據 189
12.1.5 數據平坦化 190
12.2 標準查詢運算符方法 191
12.3 Lambda 192
12.4 延遲執行 195
12.5 總結 195
12.6 問與答 196
12.7 作業 196
12.7.1 測驗 196
12.7.2 答案 196
12.7.3 練習 196
第三部分 使用數據
第13章 使用文件和流 198
13.1 文件和目錄 198
13.1.1 使用路徑 199
13.1.2 特殊目錄 199
13.1.3 DirectoryInfo和FileInfo類 200
13.1.4 Directory和File類 203
13.2 讀寫數據 206
13.2.1 二進制文件 206
13.2.2 緩沖流 207
13.2.3 文本文件 208
13.2.4 使用File類讀寫數據 209
13.3 總結 211
13.4 問與答 211
13.5 作業 211
13.5.1 測驗 211
13.5.2 答案 212
13.5.3 練習 212
第14章 使用XML 213
14.1 理解XML DOM 214
14.2 使用LINQ to XML 214
14.2.1 XDocument 215
14.2.2 XElement和XAttribute 215
14.2.3 XName和XNamespace 217
14.3 選擇和查詢XML 220
14.4 修改XML 222
14.5 總結 224
14.6 問與答 224
14.7 作業 225
14.7.1 測驗 225
14.7.2 答案 225
14.7.3 練習 225
第15章 使用數據庫 226
15.1 先決條件 226
15.2 理解ADO-NET 227
15.3 理解LINQ to ADO-NET 229
15.3.1 LINQ to DataSet 230
15.3.2 LINQ to SQL 231
15.4 總結 236
15.5 問與答 236
15.6 作業 237
15.6.1 測驗 237
15.6.2 答案 237
15.6.3 練習 237
第四部分 使用Visual Studio創建應用程序
第16章 在Visual Studio中調試程序 240
16.1 註釋代碼 240
16.2 編譯錯誤和運行錯誤 242
16.3 在Visual Studio中調試程序 243
16.3.1 變量窗口 244
16.3.2 使用數據提示 245
16.3.3 使用即時窗口 246
16.3.4 理解斷點 246
16.3.5 控制程序執行 247
16.4 可視化數據 249
16.5 總結 250
16.6 問與答 250
16.7 作業 250
16.7.1 測驗 250
16.7.2 答案 250
16.7.3 練習 251
第17章 創建Windows應用程序 252
17.1 理解WPF 252
17.1.1 使用標記和代碼隱藏 253
17.1.2 應用程序 254
17.1.3 理解WPF布局 255
17.1.4 使用圖形、動畫和媒體 256
17.1.5 理解文本、版式和文檔 256
17.1.6 數據綁定 257
17.2 創建WPF應用程序 257
17.3 設置布局的樣式 264
17.4 總結 266
17.5 問與答 266
17.6 作業 266
17.6.1 測驗 266
17.6.2 答案 266
17.6.3 練習 266
第18章 使用數據綁定和驗證 267
18.1 理解數據綁定 267
18.2 轉換數據 270
18.3 綁定到集合 274
18.4 使用數據模板 277
18.5 驗證數據 278
18.6 總結 280
18.7 問與答 281
18.8 作業 281
18.8.1 測驗 281
18.8.2 答案 281
18.8.3 練習 282
第19章 創建Web應用程序 283
19.1 理解Web應用程序架構 283
19.2 使用ASP-NET 284
19.3 創建Web應用程序 286
19.3.1 創建布局 288
19.3.2 設置布局的樣式 289
19.3.3 理解數據綁定 291
19.4 理解數據驗證 292
19.5 總結 294
19.6 問與答 295
19.7 作業 295
19.7.1 測驗 295
19.7.2 答案 295
19.7.3 練習 295
第五部分 深入探索
第20章 特性編程 298
20.1 理解特性 298
20.2 使用常見特性 300
20.2.1 特性Obsolete 300
20.2.2 特性Conditional 301
20.2.3 全局特性 301
20.3 使用自定義特性 302
20.4 在運行階段訪問特性 303
20.5 總結 304
20.6 問與答 304
20.7 作業 305
20.7.1 測驗 305
20.7.2 答案 305
20.7.3 練習 305
第21章 動態類型和語言互操作性 306
21.1 使用動態類型 306
21.1.1 轉換 308
21.1.2 動態重載解析 308
21.2 理解DLR 309
21.3 與COM互操作 312
21.4 使用反射進行互操作 313
21.5 總結 313
21.6 問與答 314
21.7 作業 314
21.7.1 測驗 314
21.7.2 答案 314
21.7.3 練習 314
第22章 內存組織和垃圾收集 315
22.1 內存組織 315
22.2 垃圾收集 316
22.3 理解IDisposable 316
22.4 使用釋放模式 318
22.5 聲明和使用終結器 319
22.6 總結 320
22.7 問與答 320
22.8 作業 321
22.8.1 測驗 321
22.8.2 答案 321
22.8.3 練習 321
第23章 理解線程、並發性和並行 322
23.1 理解線程和線程處理 322
23.2 並發性和同步 323
23.2.1 使用鎖 324
23.2.2 使用通知 325
23.2.3 互鎖操作 326
23.2.4 其他同步基元 326
23.3 理解任務並行庫 327
23.3.1 數據並行 327
23.3.2 任務並行 328
23.4 使用並行LINQ 330
23.5 潛在的陷阱 331
23.6 總結 331
23.7 問與答 332
23.8 作業 332
23.8.1 測驗 332
23.8.2 答案 332
23.8.3 練習 333
第24章 Silverlight、PowerShell和實體框架 334
24.1 理解實體框架 334
24.2 PowerShell簡介 336
24.3 Silverlight 337
24.4 總結 337