內容介紹
本書由淺入深,全面、系統地介紹了C#程式設計。除了詳細地講解C#知識點外,本書還提供了大量的實例,供讀者實戰演練。本書共分三篇。第一篇是C#概述篇,主要介紹的是Visual Studio 2012的開發環境及搭建。第二篇是面向對象基礎篇,主要介紹類、對象、欄位、方法、流程控制、數組、繼承、屬性、運算符重載、接口等C#基本內容。第三篇是套用技術篇,主要介紹的是異常處理、檔案和流、委託、事件、Lambda表達式、命名空間、預處理器、程式集、運行時類型標識、反射、特性、泛型、LINQ和資料庫開發等。
本書涉及面廣,從基本操作到高級技術和核心原理,幾乎涉及C#開發的所有重要知識。本書適合所有想全面學習C#開發技術的人員閱讀,也適合使用C#進行開發的工程技術人員使用。對於經常使用C#做開發的人員,本書更是一本不可多得的案頭必備參考書。
作品目錄
第一篇C#概述篇第1章C#入門 2
1.1C#概述 2
1.1.1C#的發展 2
1.1.2C#開發的基礎 2
1.2搭建開發環境 3
1.2.1Visual Studio 2012軟硬體配置要求 3
1.2.2下載Visual Studio 2012 3
1.2.3安裝Visual Studio 2012 4
1.2.4初始化配置 7
1.3第一個程式——Hello World 8
1.4小結 11
1.5習題 12
第二篇面向對象基礎篇
第2章類和對象 16
2.1分析Hello World程式 16
2.2語法規範 17
2.2.1標識符 17
2.2.2關鍵字 18
2.2.3注釋 19
2.3定義類 20
2.4實例化對象 20
2.5小結 20
2.6習題 21
第3章定義類——欄位 23
3.1數據類型 23
3.1.1簡單值類型 23
3.1.2值的表示——字面量 26
3.1.3轉義序列 27
3.2定義欄位 27
3.2.1定義欄位 28
3.2.2靜態欄位和實例欄位的訪問 28
3.2.3欄位初始化 29
3.2.4欄位的動態賦值——Read()和ReadLine() 31
3.2.5欄位輸出 31
3.2.6格式化輸出 32
3.2.7數據類型轉換 39
3.2.8隻讀欄位 41
3.2.9訪問控制 41
3.3運算符 43
3.3.1算術運算符 43
3.3.2自增、自減運算符 44
3.3.3複合賦值運算符 45
3.3.4位運算符 46
3.3.5sizeof運算符 47
3.3.6運算符的優先權 47
3.4小結 49
3.5習題 49
第4章定義類——方法 51
4.1方法的概述 51
4.1.1定義方法 51
4.1.2方法的調用 52
4.2方法體的構成 53
4.2.1局部變數 53
4.2.2局部變數與欄位同名的解決——this關鍵字 54
4.2.3語句 55
4.2.4全局變數 55
4.3返回值 56
4.3.1返回值類型 56
4.3.2從方法返回 57
4.4參數 58
4.4.1參數的分類 58
4.4.2引用參數(ref參數) 59
4.4.3輸出參數(out參數) 61
4.5特殊的方法 62
4.5.1Main()方法 62
4.5.2構造函式 62
4.5.3帶參數的構造函式 63
4.5.4析構函式 64
4.6小結 65
4.7習題 65
第5章流程控制 69
5.1選擇執行——條件 70
5.1.1條件真假——布爾類型的轉化 70
5.1.2關係運算 71
5.1.3邏輯運算 71
5.2選擇語句 73
5.2.1問號運算符 73
5.2.2if語句 74
5.2.3if…else語句 75
5.2.4if…else…if語句 76
5.2.5switch語句 77
5.3循環語句 80
5.3.1while語句 80
5.3.2do…while語句 81
5.3.3for語句 82
5.3.4foreach語句 85
5.4跳轉語句 85
5.4.1break語句 85
5.4.2continue語句 86
5.4.3goto語句 86
5.5小結 87
5.6習題 87
第6章數組 91
6.1初識數組 91
6.2基本數組 92
6.2.1聲明數組 92
6.2.2數組的初始化 92
6.2.3數組引用 93
6.2.4數組的賦值 94
6.2.5遍歷數組 95
6.3特殊數組 96
6.3.1多維數組 96
6.3.2交錯數組 100
6.4對數組的使用 101
6.4.1數組作為方法參數 102
6.4.2類中的數組 105
6.5對數組的操作 106
6.5.1清空數組 106
6.5.2創建數組副本 107
6.5.3複製一部分元素給另一數組 107
6.5.4將當前一維數組的所有元素賦值到指定的一維數組中 108
6.5.5獲取某個元素的值 109
6.5.6獲取元素的索引值 109
6.5.7獲取某元素最後匹配項的索引 110
6.5.8反轉一維數組中的元素順序 110
6.5.9為數組中的某個元素重新賦值 111
6.5.10對數組元素進行重新排序 112
6.6小結 112
6.7習題 113
第7章繼承 115
7.1C#的繼承機制 115
7.1.1概述 115
7.1.2初識繼承 116
7.2訪問修飾符 118
7.3成員繼承 121
7.3.1使用繼承欄位 121
7.3.2使用方法 121
7.3.3派生類直接訪問基類成員——base 122
7.3.4繼承中的構造函式 123
7.4多態 124
7.5抽象 128
7.5.1抽象類、抽象方法的聲明 129
7.5.2抽象類的使用 129
7.5.3抽象方法的使用 130
7.6密封 132
7.6.1密封類 132
7.6.2密封方法 133
7.7小結 134
7.8習題 135
第8章屬性 139
8.1屬性初識 139
8.1.1屬性聲明 139
8.1.2屬性訪問 140
8.1.3訪問器 141
8.1.4屬性分類 145
8.2屬性使用 146
8.2.1屬性繼承 146
8.2.2對訪問器使用訪問修飾符 148
8.2.3自動實現屬性 149
8.2.4對屬性使用對象初始化器 150
8.3索引器 151
8.3.1索引器的聲明 151
8.3.2一維索引器的使用 152
8.3.3重載索引器 153
8.3.4比較屬性和索引器 153
8.3.5比較索引器和數組 154
8.4小結 154
8.5習題 154
第9章運算符重載 158
9.1什麼是運算符重載 158
9.2如何進行運算符重載 158
9.2.1一元運算符重載 159
9.2.2二元運算符重載 162
9.3關係運算符重載 163
9.4重載true和false 165
9.5邏輯運算符重載 167
9.5.1邏輯運算符重載的簡單方式 167
9.5.2使用短路運算符 169
9.6轉換運算符 171
9.7注意問題 173
9.7.1重載後運算符的優先權 173
9.7.2不能重載的運算符 174
9.8小結 175
9.9習題 175
第10章接口 178
10.1接口的概念 178
10.1.1接口組成 178
10.1.2接口聲明 178
10.1.3接口的實現 179
10.2接口方法的使用 182
10.3接口屬性 183
10.4接口索引器 185
10.5接口繼承 187
10.5.1多重繼承 187
10.5.2接口繼承引起的名稱隱藏 189
10.6顯式實現接口 190
10.7小結 194
10.8習題 194
第三篇套用技術篇
第11章異常處理 200
11.1異常處理的基礎 200
11.1.1什麼是異常 200
11.1.2未捕獲異常的後果 200
11.1.3常用異常 201
11.1.4異常處理 201
11.1.5使用try和catch關鍵字 201
11.2處理異常 204
11.2.1使用異常處理錯誤 204
11.2.2使用多條catch語句 205
11.2.3嵌套try塊 206
11.2.4拋出異常 207
11.2.5重新拋出異常 208
11.2.6finally語句 210
11.3自定義異常類 212
11.4checked和unchecked關鍵字 214
11.4.1checked 214
11.4.2unchecked 214
11.5小結 217
11.6習題 217
第12章檔案和流 221
12.1System.IO類 221
12.2檔案類File 222
12.2.1檔案的創建和打開 222
12.2.2判斷檔案是否存在 224
12.2.3複製檔案 225
12.2.4刪除檔案 226
12.2.5檔案的加密和解密 227
12.2.6檔案讀取 228
12.3資料夾類Directory 229
12.3.1創建資料夾 229
12.3.2刪除資料夾 230
12.3.3獲取資料夾 231
12.4檔案信息類FileInfo 232
12.5資料夾信息類DirectoryInfo 233
12.6流 234
12.7檔案流類FileStream 235
12.7.1FileStream檔案流類的創建 235
12.7.2獲取和設定檔案流屬性信息 236
12.8流寫入類StreamWriter 237
12.9流讀取類StreamReader 238
12.9.1創建StreamReader 239
12.9.2讀取字元或字元塊到指定的變數 240
12.10二進制流寫入類BinaryWriter 241
12.11二進制流讀取類BinaryReader 242
12.12小結 244
12.13習題 244
第13章委託、事件和 Lambda表達式 247
13.1委託 247
13.1.1聲明委託 247
13.1.2創建委託 247
13.1.3多播委託 249
13.1.4逆變和協變 251
13.2事件 253
13.2.1聲明事件 253
13.2.2訂閱事件 254
13.2.3取消訂閱事件 255
13.2.4引發事件 255
13.2.5使用事件 255
13.3匿名函式 257
13.3.1匿名方法 257
13.3.2給匿名方法傳遞參數 258
13.3.3從匿名方法中返回值 259
13.4Lambda表達式 260
13.4.1Lambda運算符和Lambda表達式 261
13.4.2Lambda表達式的形式 263
13.4.3語句Lambda 263
13.5小結 265
13.6習題 265
第14章命名空間、預處理器和程式集 269
14.1命名空間 269
14.1.1命名空間的聲明 269
14.1.2命名空間的作用 272
14.1.3using指令 273
14.1.4using指令的另一種形式 275
14.1.5命名空間的合成 277
14.1.6嵌套命名空間 278
14.1.7全局命名空間 280
14.1.8使用命名空間別名限定符(::) 280
14.2預處理器 281
14.2.1#define 281
14.2.2#if和#endif 282
14.2.3#else和#elif 284
14.2.4#undef 287
14.2.5#error 287
14.2.6#warning 288
14.2.7#line 289
14.2.8#region和#endregion 289
14.2.9#pragma 290
14.3程式集 291
14.4小結 292
14.5習題 293
第15章運行時類型標識、反射和特性 297
15.1運行時類型標識 297
15.1.1is運算符測試類型 297
15.1.2as運算符 299
15.1.3typeof運算符 300
15.2反射 301
15.2.1System.Type 301
15.2.2使用反射獲取方法的相關信息 302
15.2.3使用反射調用方法 306
15.2.4使用反射獲取Type對象的構造函式 308
15.2.5使用反射從程式集獲得類型 308
15.3特性 311
15.3.1創建特性 311
15.3.2連線特性 313
15.3.3獲取對象的特性 313
15.3.43個內置特性 316
15.4小結 319
15.5習題 319
第16章泛型 327
16.1泛型簡介 327
16.2類型約束 328
16.2.1基類約束 329
16.2.2接口約束 330
16.2.3new()構造函式約束 331
16.2.4引用類型約束和值類型約束 332
16.2.5使用約束建立兩個類型形參之間的關係 334
16.2.6使用多個約束 335
16.3泛型結構 336
16.4泛型方法 337
16.5泛型委託 338
16.6泛型接口 339
16.7泛型類的層次結構 341
16.8使用泛型的限制 343
16.9小結 343
16.10 習題 343
第17章LINQ 349
17.1LINQ的基礎知識 349
17.1.1簡單查詢 349
17.1.2多次執行查詢 351
17.2查詢表達式中使用的上下文關鍵 352
17.2.1使用where子句篩選值 352
17.2.2使用orderby子句排序結果 354
17.2.3select子句 358
17.2.4使用嵌套的from子句 364
17.2.5使用group子句分組結果 365
17.2.6使用into子句創建延續 366
17.2.7在查詢中使用let子句創建變數 367
17.2.8使用join子句連線兩個序列 368
17.3匿名類型 370
17.4創建組連線 372
17.5查詢方法 374
17.5.1使用查詢方法創建查詢 374
17.5.2查詢語法與查詢方法的對比 376
17.6延期執行查詢和立即執行查詢 376
17.7表達式樹 376
17.8擴展方法 378
17.9小結 379
17.10 習題 379
第18章資料庫開發 385
18.1常用資料庫 385
18.1.1Oracle資料庫 385
18.1.2Access資料庫 385
18.1.3SQL Server資料庫 386
18.2.NET下的資料庫連線方式 386
18.2.1通過連線字元串連線Access資料庫 386
18.2.2通過連線字元串連線SQL Server資料庫 387
18.2.3通過控制項連線資料庫 389
18.3SQL語句 391
18.3.1select語句 391
18.3.2where語句 393
18.3.3order by語句 395
18.3.4insert into語句 397
18.3.5delete語句 399
18.3.6update語句 401
18.4小結 403
18.5習題 403