C#編程入門與應用
內容描述
C#是微軟公司發布的一種面向對象的、運行於.NET Framework之上的不錯程序設計語言。優選每天有超過百萬的開發者正在用C#進行著各式各樣程序的開發,它是目前使用很廣泛的電腦語言之一。C#是一種安全的、穩定的、簡單的、優雅的、由C和C++衍生出來的面向對象的編程語言。C#綜合了Visual Basic簡單的可視化操作和C++的高運行效率,以其強大的操作能力、優雅的語法風格、創新的語言特性和便捷的面向組件編程的支持,成為.NET開發的優選語言。
盡管C#很好很好,但是對於靠前次接觸編程的人來說並不容易學。萬事開頭難,本書總結了作者多年的教學成果,將為讀者打開一扇通往C#世界的大門,讓讀者少走彎路,快速入門,打好堅實的基礎。
本書共分為19章。靠前~18章的主要內容包括:C#語言的發展、特點、運行環境、運算符與表達式、數據類型、變量、常量、註釋、流程控制語句、選擇語句、循環語句、跳轉語句、數組和排序、內置集合、自定義集合、面向對象編程、枚舉、結構、接口、類的封裝、繼承和多態特性、異常處理、程序調試、泛型、委托、事件、Windows窗體程序、窗體控件、MDI窗體程序、菜單控件、ADO.NET對象、數據表格控件、數據流、文件輸入以及文件輸出;靠前9章結合使用Visual Studio 2015和SQL Server 2012,開發一個簡單的汽車租賃系統。
本書可以作為高等院校電腦相關專業C#語言程序設計課程的教材,也可以作為C#程序設計的培訓教材,還可以作為自學者的參考書。
目錄大綱
目錄
第1章C#入門概述
1.1 C#語言概述. 2
1.1.1什麼是C#語言... 2
1.1.2 C#的發展歷史.... 2
1.1.3 C#的優勢分析.... 2
1.1. 4如何學好C#語言.... 3
1.2 C#環境——.NET框架... 4
1.2.1什麼是.NET框架.... 4
1.2.2 .NET框架的組件4
1.2.3 .NET框架的版本5
1.2.4 .NET框架的體系結構.. 6
1.3 C#開發——Visual Studio 2015 7
1.3.1什麼是Visual Studio 7
1.3.2 Visual Studio的發展歷程.. 8
1.3.3 Visual Studio 2015的新功能.. 8
1.4高手帶你做——安裝VS 2015 .... 10
1.5高手帶你做——創建第一個
控制台程序14
1.6認識C#程序結構16
1.6.1 C#程序結構組成.. . 16
1.6.2創建和執行C#程序... 17
1.7高手帶你做——通過記事本創建
應用程序.... 17
1.8高手帶你做——創建Windows
窗體應用程序. 19
1.9成長任務.... 21
第2章C#基礎語法
2.1認識C#語法... 24
2.2 using關鍵字.... 25
2.2.1 using指令25
2.2.2常見的命名空間.... 26
2.2.3 using語句27
2.2.4高手帶你做——using語句的
詳細使用.. 28
2.3 namespace關鍵字29
2.3.1定義命名空間.. . 30
2.3.2嵌套命名空間... 30
2.3.3高手帶你做——為自定義命名
空間指定別名.... 31
2.4 class關鍵字32
2.5 Main()方法32
2.6 Console類.. 33
2.6.1輸出內容到控制台33
2.6.2從控制台輸入內容34
2.6.3 Console類的其他方法.... 34
2.7 C#語言註釋.... 35
2.7.1單行註釋. 35
2.7. 2多行註釋. 36
2.7.3文檔註釋. 36
2.8 C#關鍵字... 37
2.8.1保留關鍵字.. 37
2.8.2上下文關鍵字... 38
2.9 C#預處理器指令. 38
2.9.1 C#預處理器指令列表38
2.9.2 #define指令.. 39
2.9.3條件指令. 40
2.9.4 #region指令. 41
2.10高手帶你做——根據輸入內容
返回結果... 42
2.11成長任務... 44
第3章變量、常量與數據類型
3.1變量.. 46
3.1. 1聲明變量. 46
3.1.2變量賦值. 47
3.1.3變量類型. 47
3.2常量.. 50
3.2.1常量概述. 50
3.2.2定義常量. 51
3.3.數據類型... 53
3.3.1數據類型分類... 53
3.3.2基本數據類型... 54
3.3.3枚舉和結構類型.... 57
3.4數據類型轉換. 57
3.4.1隱式轉換. 58
3.4.2顯式轉換. 60
3.5高手帶你做——Convert類實現
類型轉換.... 62
3.6成長任務.... 64
第4章運算符和表達式
4.1基礎運算符66
4.1.1算術運算符.. 66
4.1.2關係運算符.. 67
4.1.3邏輯運算符.. 68
4.1.4賦值運算符.. 69
4.1 .5位運算符. 71
4.2高級運算符73
4.2.1自增運算符.. 74
4.2.2自減運算符.. 74
4.2.3雜項運算符.. 76
4.3高手帶你做——認識並使用
三元運算符77
4.4運算符的優先級.. 77
4.5表達式... 79
4.6成長任務.... 80
第5章流程控制語句
5.1語句概述.... 82
5.1.1語句類型. 82
5.1.2空語句83
5.2 if選擇語句. 83
5.2.1簡單if語句.. 83
5.2.2 if else語句.. 85
5.2.3 if else if else語句.. 86
5.2.4嵌套if語句. . 87
5.3高手帶你做——根據輸入的年齡
判斷信息.... 89
5.4 switch選擇語句... 90
5.4.1 switch語句... 90
5.4.2嵌套switch語句.... 92
5.4.3 switch語句與if語句的區別.... 94
5.5循環語句.... 95
5.5.1 while語句. ... 95
5.5.2 do while語句.... 97
5.5.3 for語句.... 99
5.5.4 foreach語句.... 102
5.6高手帶你做——循環打印點陣圖形... . 104
5.7跳轉語句.. 106
5.7.1 return語句.. 106
5.7.2 break語句.. 107
5.7.3 continue語句... 108
5.7.4 goto語句.... 109
5.8成長任務.. 111
第6章字符串與正則表達式
6.1認識String類114
6.1.1創建String對象... 114
6.1.2 null字符串和空字符串. 115
6.1.3 String類的屬性.... 116
6.2字符串的基本操作. 116
6.2.1連接字符串116
6.2.2轉換大小寫119
6.2.3去除空格.... 120
6.2.4提取字符串120
6.2.5分割字符串121
6.3字符串的高級操作. 122
6.3.1替換字符串122
6.3.2比較字符串123
6.3.3定位字符串124
6.3.4格式化字符串. 126
6.4高手帶你做——驗證指定的
文件和郵箱... 126
6.5 StringBuilder類操作字符串.. 128
6.5.1創建StringBuilder對象. 128
6.5.2 StringBuilder類的屬性.. 128
6.5.3追加字符串130
6.5.4插入字符串131
6.5.5替換字符串132
6.5.6刪除字符串132
6.6高手帶你做——字符串加密和
解密操作.. 133
6.7正則表達式... 136
6.7. 1正則元字符136
6.7.2正則限定符137
6.7.3正則表達式Regex類.... 138
6.7.4高手帶你做——將人民幣
金額轉換為大寫漢字142
6.8成長任務.. 143
第7章數值處理和日期處理
7.1數值處理——Math類. 146
7.1.1靜態常量.... 146
7.1.2求最值... 146
7.1.3求絕對值.... 146
7.1.4求整數值.... 147
7.1.5求三角函數148
7.1.6 Math的其他方法. 149
7.2偽隨機數——Random類. 149
7.2.1初始化隨機數生成器.... 149
7.2.2生成隨機數150
7.2.3高手帶你做——求隨機數的
平均值和方差.. 151
7.3日期處理——DateTime結構153
7.3.1靜態字段.... 153
7.3.2靜態屬性.... 153
7.3.3實例屬性.... 154
7.3.4靜態方法.... 155
7.3.5實例方法.... 156
7.3.6 ToString()方法格式化日期159
7.4日期處理——TimeSpan結構.... 160
7.4. 1靜態字段.... 160
7.4.2靜態常量.... 161
7.4.3實例屬性.... 162
7.4.4實例方法.... 163
7.4.5高手帶你做——基於TimeSpan
實現倒計時效果... 165
7.5高手帶你做——根據年月輸出日曆.... 166
7.6成長任務.. 167
第8章數組
8.1數組概述.. 170
8.2一維數組.. 170
8.2.1聲明數組.... 170
8.2.2分配空間.... 171
8.2.3初始化數組171
8.2.4獲取單個元素. 172
8.2.5獲取全部元素. 173
8.3二維數組.. 174
8.3.1聲明數組.... 174
8.3.2初始化數組175
8.3.3獲取單個元素. 175
8.3.4獲取全部元素. 176
8.4高手帶你做——二維數組如何
實現矩陣乘法.... 177
8.5多維數組.. 179
8.5.1三維數組.... 179
8.5.2交錯數組.... 180
8.6數組處理類... 181
8.6.1 Array類. 182
8.6.2 ArrayList類183
8.7數組的基礎操作185
8.7.1添加元素.... 185
8.7.2複製元素.... 186
8.7.3反轉元素.... 188
8.7.4移除元素.... 190
8.7.5清除元素.... 191
8.8數組排序.. 192
8.8.1內置排序法192
8.8.2冒泡排序法192
8.8.3快速排序法194
8.8.4選擇排序法195
8.8.5插入排序算法. 196
8.9高手帶你做——商品信息查詢功能.... 197
8.10成長任務199
第9章內置集合和自定義集合
9.1集合概述.. 202
9.2 Hashtable集合... 203
9.2.1 Hashtable的常用屬性... 203
9.2.2 Hashtable的常用方法... 203
9.2.3 Hashtable的基本操作... 203
9.3 SortedList集合... 206
9.3.1 SortedList集合類的常用屬性. 207
9.3.2 SortedList集合的常用方法207
9.3.3 SortedList基本操作.. 208
9.4 Stack集合212
9.4.1 Stack的常用方法212
9.4. 2 Stack的基本操作212
9.5 Queue集合.... 214
9.5.1 Queue的常用方法.... 214
9.5.2 Queue的基本操作.... 214
9.6 BitArray集合216
9.7高手帶你做——用戶自定義
集合操作數據. ... 217
9.8成長任務.. 220
第10章類和對象
10.1面向對象編程.. 222
10.1.1什麼是面向對象. 222
10.1.2類和對象... 222
10.2認識類.... 223
10.2.1類的聲明... 223
10.2.2 System.Object類224
10.3類的函數224
10.3.1構造函數... 225
10.3.2析構函數... 226
10.4類的成員227
10.4.1字段和常量.... 227
10.4.2定義屬性... 228
10.4.3定義方法... 230
10.4.4方法分類... 231
10.4.5方法重載... 232
10.4.6 Main( )方法... 234
10.5聲明和使用對象... 234
10.6 this關鍵字... 235
10.6.1引用類的當前實例.. 235
10.6.2調用其他的構造函數... 236
10.6.3聲明索引器.... 236
10.7高手帶你做——字符串反轉及
字符出現次數. .. 237
10.8高手帶你做——根據用戶選擇
打印圖形. 238
10.9高手帶你做——在類中嵌套
內部類241
10.10成長任務... 242
第11章類的面向對象編程
11.1封裝性244
11.1.1封裝的概念.... 244
11.1.2如何實現封裝244
11.1.3字段和屬性的區別.. 246
11.2繼承性246
11.2.1繼承的概念.... 247
11.2.2如何實現繼承247
11.2.3繼承的缺點.... 249
11.3多態性249
11.3.1多態的概念.... 249
11.3.2編譯時多態.... 250
11.3.3運行時多態. ... 251
11.3.4重載和重寫的區別.. 253
11.4抽像類254
11.4.1抽像類的概念254
11.4.2抽象方法的概念. 254
11.4.3實現抽像類和抽象方法.... 255
11.4.4高手帶你做——實現從基類
中繼承的抽象屬性.. 256
11.5密封類257
11.5.1密封類的概念257
11.5.2密封方法的概念. 258
11.5.3實現密封類和密封方法.... 259
11.6類的常用關鍵字.... 260
11.6.1 base關鍵字... 260
11.6.2 virtual關鍵字261
11.6. 3 ref關鍵字. 262
11.6.4 out關鍵字264
11.7高手帶你做——簡單計算器的
完整實現. 265
11.8成長任務. 269
第12章枚舉、結構和接口
12.1枚舉... 272
12.1.1枚舉概述... 272
12.1.2定義枚舉... 272
12.1.3使用枚舉... 274
12.1.4枚舉類型強制轉換.. 275
12.1.5 Enum類操作枚舉... 275
12.2高手帶你做——獲取枚舉成員
對應的中文名稱.... 278
12.3結構... 280
12.3.1結構概述... 280
12.3.2定義結構... 281
12.3.3使用結構... 281
12.3.4結構和類的異同點.. 282
12.4接口... 283
12.4.1接口概述... 283
12.4.2聲明接口... 284
12.4.3接口成員... 285
12.4.4實現接口... 286
12.4.5接口和抽像類的區別... 288
12.5高手帶你做——類顯式實現接口. 288
12.6內置接口290
12.6.1 IComparable接口.... 290
12.6.2 IComparer接口.. 291
12.7成長任務294
第13章C#語言高級編程
13.1異常處理296
13.1.1異常處理概述296
13.1.2異常處理語句296
13.2高手帶你做——Exception類獲取
異常信息. 300
13.3程序調試301
13.3.1程序調試概述302
13.3.2程序調試操作302
13.4泛型... 304
13.4.1泛型概述... 304
13.4 .2泛型類.. 304
13.4.3泛型方法... 305
13.4.4泛型委託... 306
13.4.5泛型集合... 307
13.5高手帶你做——泛型參數的約束. 309
13.6委託和事件. 310
13.6.1委託. 310
13.6.2事件. 312
13.7成長任務316
第14章Windows窗體基礎控件
14.1 Windows窗體應用程序. 318
14.1.1創建Windows窗體應用程序.... 318
14.1.2 Windows窗體概述. 319
14.1.3 Windows窗體屬性. 321
14.1.4 Windows窗體事件. 323
14.1.5 Windows窗體控件概述... 325
14.2基本控件325
14.2.1 Label控件325
14.2.2 LinkLabel控件... 327
14.2.3 TextBox控件. 329
14.2.4 RichTextBox控件... 331
14.2.5 MaskedTextBox控件... 333
14.3按鈕控件334
14.3.1 Button控件.... 334
14.3.2 RadioButton控件.... 336
14.3.3 CheckBox控件... 337
14.4列表控件339
14.4.1 ListBox控件.. 339
14.4.2 ComboBox控件. 340
14.4.3 ListView控件342
14.4.4 CheckedListBox控件. .. 344
14.5容器控件346
14.5.1 Panel控件. 346
14.5.2 GroupBox控件... 347
14.5.3 TabControl控件. 348
14.6圖像控件349
14.6.1 PictureBox控件.. 349
14.6.2 ImageList組件... 350
14.7 Windows其他控件.... 351
14.7.1 Timer組件352
14.7.2 NotifyIcon控件.. 352
14.7.3 DomainUpDown控件.. 353
14.7.4 NumericUpDown控件. 354
14.7.5 MonthCalendar控件.... 354
14.8高手帶你做——模擬在線
購物程序. 356
14.9成長任務362
第15章構建MDI窗體應用程序
15.1 MDI窗體應用程序.... 364
15.1.1什麼是MDI窗體.... 364
15.1.2創建MDI父窗體.... 364
15.1.3設置MDI子窗體.... 366
15.1.4子窗體訪問父窗體成員.... 367
15.2 MDI窗體控件.. 369
15.2.1 MenuStrip控件.. 369
15.2.2 ContextMenuStrip控件372
15.2.3 ToolStrip控件.... 374
15.2.4 StatusStrip控件.. 376
15.3高手帶你做——排列MDI子窗體.... 377
15.4常用對話框. 379
15.4.1標準對話框.... 379
15.4 .2字體對話框.... 383
15.4.3顏色對話框.... 384
15.4.4瀏覽目錄對話框. 385
15.4.5打開和保存文件對話框.... 386
15.5高手帶你做— —簡易圖片格式
轉換器388
15.6成長任務389
第16章ADO.NET技術訪問數據庫
16.1 ADO.NET和數據庫.. 392
16.1.1 ADO.NET概述.. 392
16.1.2數據庫概述.... 393
16.2連接數據庫. 394
16.2.1 SqlConnection簡述. 394
16.2.2打開數據庫連接. 395
16.2.3關閉數據庫連接. 397
16.3執行SQL語句. 397
16.3.1 SqlCommand簡述... 397
16.3.2獲取數據總記錄. 399
16.3.3讀取數據... 400
16.3.4刪除數據... 401
16.4讀取數據402
16.4. 1 SqlDataReader對像簡述.. 402
16.4.2判斷查詢結果中是否有值403
16.4.3獲取數據列的值. 403
16.5數據適配器——SqlDataAdapter
對象.... 406
16.6數據集.... 407
16.6 .1 DataSet對像簡述.... 407
16.6.2合併DataSet內容... 408
16.6.3複製DataSet內容... 410
16.7其他常見對象.. 411
16.7.1 DataTable對象... 411
16.7.2 DataView對象.... 415
16.8高手帶你做——ListView控件
加載和刪除圖書信息. 417
16.9成長任務420
第17章Windows表格數據控件
17.1了解DataGridView控件422
17.1.1 DataGridView控件概述... 422
17.1.2 DataGridView的結構.. 423
17.1.3 DataGridView的常用屬性.... 423
17.1.4 DataGridView的常用事件.... 425
17.2 DataGridView控件的操作.. 425
17.2.1數據顯示... 426
17.2.2獲取單元格.. .. 428
17.2.3修改數據... 429
17.2.4刪除數據... 430
17.2.5設置選中行的顏色.. 432
17.2.6禁止添加和刪除行.. 433
17.3高手帶你做——為DataGridView
控件手動添加數據434
17.4了解TreeView控件... 436
17.4.1 TreeView控件概述. 436
17.4.2 TreeView的常用屬性.. 437
17.4.3 TreeView的方法和事件... 438
17.5 TreeView控件的操作439
17.5.1添加節點... 439
17.5.2移除節點... 440
17.5.3清空節點... 441
17.5.4獲取選中節點441
17.5.5為節點設置圖標. 442
17.6高手帶你做——利用TreeView
控件瀏覽圖像... 443
17.7成長任務445
第18章數據流和文件的輸入/輸出
18.1數據流.... 448
18.1.1流操作類的介紹. 448
18.1 .2 FileStream文件流類.... 448
18.1.3寫入和讀取文本文件... 450
18.1.4寫入和讀取二進製文件.... 453
18.2 System.IO命名空間.. 456
18.2 .1 File類.. 456
18.2.2 Directory類... 458
18.2.3 FileInfo類. 459
18.2.4 DirectoryInfo類.. 460
18.3文件的基本操作... 461
18.3.1判斷文件是否存在.. 461
18.3.2獲取文件信息462
18.3.3創建文件... 463
18.3.4複製文件... 464
18.3.5移動文件... 465
18.3.6刪除文件... 466
18.4文件夾的基本操作.... 467
18.4.1判斷文件夾是否存在... 467
18.4.2獲取文件夾信息. 468
18.4.3遍歷文件夾.... 468
18.4.4創建文件夾.... 470
18.4.5移動文件夾.... 472
18.4.6刪除文件夾.. .. 473
18.5高手帶你做——實現Windows
資源管理器.. 474
18.6成長任務479
第19章三層架構實現汽車租賃系統
19.1了解汽車租賃系統.... 482
19.1.1開發背景... 482
19.1.2功能介紹... 482
19.1.3可行性分析.... 482
19.1.4需求分析... 483
19.2數據庫設計. 483
19.2.1數據庫概述.... 483
19.2.2設計數據表.... 484
19.3了解三層架構.. 485
19.3.1三層架構概述485
19.3.2實體層概述.... 486
19.3.3三層架構的優缺點.. 486
19.4搭建系統框架.. 487
19.4.1搭建三層項目487
19.4.2項目引用... 488
19.4.3設置項目啟動項. 490
19.4.4向三層框架中添加內容.... 490
19.5 SQLHelper類詳解495
19.5.1 SQLHelper是什麼.. 495
19.5.2為SQLHelper類添加內容.... 496
19.6用戶界面設計與實現498
19.6.1登錄窗體... 498
19.6.2註冊窗體.. . 499
19.6.3查看和修改用戶信息... 500
19.6.4查找租車信息502
19.6.5汽車租賃... 504
19.6.6操作租車記錄506
19.6.7汽車出租... 509
19.6.8打印信息... 510
19.6.9退出系統... 511
作者介紹
李鑫,具有多年.Net項目開發經驗,深入掌握.NET框架技術,熟練開發Asp.net與WinForm項目,精通C#、ASP 、C++、VB語言,熟練使用MTS、COM+、Web Service分佈式架構。
祝惠娟,3年的開發經驗。曾任某軟件公司的不錯開發工程師,參與軟件後台服務等項目的設計與開發。對C、C++、VB.NET、SQL Server、C#、XML等多種環境開發和運用,有深刻的理解。