內容簡介
《C#從入門到精通(第5版)》從初學者角度出發,通過通俗易懂的語言、豐富多彩的實例,詳細介紹了使用C#進行WinForm應用程式開發應該掌握的各方面技術。全書共分26章,包括初識C#及其開發環境、開始C#之旅、變數與常量、表達式與運算符、字元與字元串、流程控制語句、數組和集合、屬性和方法、結構和類、Windows窗體、Windows應用程式常用控制項、Windows應用程式高級控制項、數據訪問技術、DataGridView數據控制項、LINQ數據訪問技術、程式調試與異常處理、面向對象技術高級套用、疊代器和分部類、泛型、檔案及數據流技術、GDI+圖形圖像技術、Windows列印技術、網路編程技術、註冊表技術、執行緒的使用、
企業人事管理系統等內容。
圖書目錄
第1篇 基礎知識
第1章 初識C#及其開發環境 2
視頻講解:1小時6分鐘
1.1 C#概述 3
1.1.1 C#語言及其特點 3
1.1.2 認識.NET Framework 3
1.1.4 C#的套用領域 4
1.2 安裝與卸載Visual Studio 2017 5
1.2.1 安裝Visual Studio 2017必備條件 5
1.2.2 安裝Visual Studio 2017 6
1.2.3 卸載Visual Studio 2017 9
1.3 熟悉Visual Studio 2017開發環境 10
1.3.1 創建項目 10
1.3.2 選單欄 12
1.3.3 工具列 13
1.3.4 “解決方案資源管理器”視窗 14
1.3.5 “工具箱”視窗 14
1.3.6 “屬性”視窗 15
1.3.7 “錯誤列表”視窗 16
1.4 小結 16
第2章 開始C#之旅 17
視頻講解:1小時10分鐘
2.1 編寫第一個C#程式 18
2.2 初識C#程式結構 19
2.2.1 命名空間 19
2.2.2 類 20
2.2.3 Main( )方法 21
2.2.4 標識符及關鍵字 21
2.2.5 C#語句 22
2.2.6 注釋 22
2.3 程式編寫規範 23
2.3.1 代碼書寫規則 23
2.3.2 命名規範 23
2.4 小結 25
2.5 動手糾錯 26
第3章 變數與常量 27
視頻講解:2小時27分鐘
3.1 變數的基本概念 28
3.2 變數的聲明及賦值 28
3.2.1 聲明變數 28
3.2.2 變數的賦值 29
3.2.3 變數的作用域 29
3.3 數據類型 31
3.3.1 值類型 31
3.3.2 引用類型 34
3.3.3 值類型與引用類型的區別 35
3.3.4 枚舉類型 36
3.3.5 類型轉換 38
3.4 常量 41
3.5 小結 42
3.6 實踐與練習 42
3.7 動手糾錯 42
第4章 表達式與運算符 43
視頻講解:1小時38分鐘
4.1 表達式 44
4.2 運算符 44
4.2.5 位運算符 53
4.2.6 其他特殊運算符 55
4.4 小結 58
4.5 實踐與練習 58
4.6 動手糾錯 58
第5章 字元與字元串 59
視頻講解:2小時6分鐘
5.1 字元類Char的使用 60
5.1.1 Char類概述 60
5.1.2 Char類的使用 60
5.1.3 轉義字元 62
5.2 字元串類String的使用 64
5.2.1 字元串的聲明及賦值 64
5.2.2 連線多個字元串 64
5.2.3 比較字元串 65
5.2.4 格式化字元串 67
5.2.5 截取字元串 69
5.2.6 分割字元串 69
5.2.7 插入和填充字元串 70
5.2.8 刪除字元串 71
5.2.9 複製字元串 72
5.2.10 替換字元串 74
5.3 可變字元串類 75
5.3.1 StringBuilder類的定義 75
5.3.2 StringBuilder類的使用 75
5.3.3 StringBuilder類與String類的區別 77
5.4 小結 78
5.5 實踐與練習 78
5.6 動手糾錯 78
第6章 流程控制語句 79
視頻講解:1小時48分鐘
6.1 條件判斷語句 80
6.1.1 if語句 80
6.1.2 switch多分支語句 84
6.2 循環語句 87
6.2.1 while語句 87
6.2.2 do…while語句 90
6.2.3 for語句 91
6.2.4 foreach語句 93
6.3 跳轉語句 94
6.3.2 continue語句 95
6.3.4 return語句 98
6.4 小結 98
6.5 實踐與練習 99
6.6 動手糾錯 99
第7章 數組和集合 101
視頻講解:1小時47分鐘
7.1 數組概述 102
7.2 一維數組的創建和使用 102
7.2.1 一維數組的創建 102
7.2.2 一維數組的初始化 104
7.2.3 一維數組的使用 104
7.3 二維數組的創建和使用 105
7.3.1 二維數組的創建 105
7.3.2 二維數組初始化 106
7.3.3 二維數組的使用 106
7.4 數組的基本操作 108
7.4.1 遍歷數組 108
7.4.2 添加/刪除數組元素 108
7.4.3 對數組進行排序 113
7.4.4 數組的合併與拆分 114
7.5 數組排序算法 116
7.5.1 冒泡排序 116
7.5.2 直接插入排序 118
7.6 ArrayList類 121
7.6.1 ArrayList類概述 121
7.6.2 ArrayList元素的添加 123
7.6.3 ArrayList元素的刪除 125
7.6.4 ArrayList的遍歷 127
7.6.5 ArrayList元素的查找 128
7.7 Hashtable(哈希表) 128
7.7.1 Hashtable概述 128
7.7.2 Hashtable元素的添加 129
7.7.3 Hashtable元素的刪除 129
7.7.4 Hashtable的遍歷 130
7.7.5 Hashtable元素的查找 131
7.8 小結 132
7.9 實踐與練習 132
7.10 動手糾錯 133
第8章 屬性和方法 134
視頻講解:43分鐘
8.1 屬性 135
8.1.1 屬性概述 135
8.1.2 屬性的使用 136
8.2 方法 138
8.2.1 方法的聲明 138
8.2.2 方法的參數類型 139
8.2.3 方法的分類 141
8.2.4 方法的重載 142
8.2.5 Main( )方法 143
8.3 小結 144
8.4 實踐與練習 144
8.5 動手糾錯 144
第9章 結構和類 146
視頻講解:1小時6分鐘
9.1 結構 147
9.1.1 結構概述 147
9.1.2 結構的使用 148
9.2 面向對象概述 149
9.2.1 對象 149
9.2.2 類 150
9.2.3 封裝 151
9.2.4 繼承 152
9.2.5 多態 153
9.3 類 153
9.3.1 類的概念 154
9.3.2 類的聲明 154
9.3.3 構造函式和析構函式 155
9.3.4 對象的創建及使用 156
9.3.6 類與對象的關係 161
9.4 類的面向對象特性 161
9.4.1 類的封裝 161
9.4.2 類的繼承 162
9.4.3 類的多態 165
9.5 小結 168
9.6 實踐與練習 168
第2篇 核心技術
第10章 Windows窗體 170
視頻講解:60分鐘
10.1 Form窗體 171
10.1.1 Form窗體的概念 171
10.1.2 添加和刪除窗體 171
10.1.3 多窗體的使用 173
10.1.4 窗體的屬性 174
10.1.5 窗體的顯示與隱藏 177
10.1.6 窗體的事件 178
10.2 MDI窗體 182
10.2.1 MDI窗體的概念 182
10.2.2 如何設定MDI窗體 183
10.2.3 排列MDI子窗體 184
10.3 繼承窗體 186
10.3.1 繼承窗體的概念 186
10.3.2 創建繼承窗體 186
10.3.3 在繼承窗體中修改繼承的控制項屬性 188
10.4 小結 189
10.5 實踐與練習 189
第11章 Windows應用程式常用控制項 189
視頻講解:1小時33分鐘
11.1 控制項概述 190
11.1.1 控制項的分類及作用 190
11.1.2 控制項命名規範 190
11.2 控制項的相關操作 191
11.2.1 添加控制項 191
11.2.2 對齊控制項 192
11.2.3 鎖定控制項 192
11.2.4 刪除控制項 192
11.3 文本類控制項 193
11.3.1 標籤控制項(Label控制項) 193
11.3.2 按鈕控制項(Button控制項) 194
11.3.3 文本框控制項(TextBox控制項) 196
11.3.4 有格式文本控制項(RichTextBox控制項) 199
11.4 選擇類控制項 203
11.4.1 下拉組合框控制項(ComboBox控制項) 203
11.4.2 複選框控制項(CheckBox控制項) 205
11.4.3 單選按鈕控制項(RadioButton控制項) 207
11.4.4 數值選擇控制項(NumericUpDown 控制項) 209
11.4.5 列表控制項(ListBox控制項) 211
11.5 分組類控制項 214
11.5.1 容器控制項(Panel控制項) 214
11.5.2 分組框控制項(GroupBox控制項) 216
11.5.3 選項卡控制項(TabControl控制項) 216
11.6 選單、工具列和狀態欄控制項 221
11.6.2 工具列控制項(ToolStrip控制項) 223
11.6.3 狀態欄控制項(StatusStrip控制項) 225
11.7 小結 226
11.8 實踐與練習 226
第12章 Windows應用程式高級控制項 227
視頻講解:1小時11分鐘
12.1 ImageList控制項(存儲圖像控制項) 228
12.1.1 在ImageList控制項中添加圖像 228
12.1.2 在ImageList控制項中移除圖像 229
12.2 ListView控制項(列表視圖控制項) 231
12.2.1 在ListView控制項中添加移除項 232
12.2.2 選擇ListView控制項中的項 234
12.2.3 為ListView控制項中的項添加圖示 235
12.2.4 在ListView控制項中啟用平鋪視圖 236
12.2.5 為ListView控制項中的項分組 237
12.3 TreeView控制項(樹控制項) 240
12.3.1 添加和刪除樹節點 240
12.3.2 獲取樹控制項中選中的節點 242
12.3.3 為樹控制項中的節點設定圖示 243
12.4.1 使用DateTimePicker控制項顯示時間 245
12.4.2 使用DateTimePicker控制項以自定義格式顯示日期 246
12.4.3 返回DateTimePicker控制項中選擇的日期 247
12.5 MonthCalendar控制項(月曆控制項) 248
12.5.1 更改MonthCalendar控制項的外觀 248
12.5.2 在MonthCalendar控制項中顯示多個月份 249
12.5.3 在MonthCalendar控制項中選擇日期範圍 250
12.6 其他高級控制項 251
12.6.1 使用ErrorProvider控制項驗證文本框輸入 251
12.6.2 使用HelpProvider控制項調用幫助檔案 253
12.6.4 使用ProgressBar控制項顯示程式運行進度條 256
12.7 小結 257
12.8 實踐與練習 257
第13章 數據訪問技術 258
視頻講解:1小時46分鐘
13.1 資料庫基礎 259
13.1.1 資料庫簡介 259
13.1.2 SQL語言簡介 259
13.1.3 資料庫的創建及刪除 259
13.1.4 數據表的創建及刪除 262
13.1.5 簡單SQL語句的套用 264
13.2 ADO.NET簡介 271
13.3.1 Connection對象概述 272
13.3.2 連線資料庫 272
13.3.3 關閉連線 274
13.4 執行SQL語句:Command對象 276
13.4.2 設定數據源類型 277
13.4.3 執行SQL語句 278
13.5 讀取數據:DataReader對象 281
13.5.1 DataReader對象概述 281
13.5.2 判斷查詢結果中是否有值 281
13.5.3 讀取數據 282
13.6
數據適配器:DataAdapter對象 283
13.6.1 DataAdapter對象概述 283
13.6.2 填充DataSet數據集 284
13.6.3 更新數據源 285
13.7 數據集:DataSet對象 287
13.7.1 DataSet對象概述 287
13.7.2 合併DataSet內容 288
13.7.3 複製DataSet內容 290
13.8 Entity Framework編程基礎 291
13.8.1 什麼是Entity Framework 291
13.8.2 Entity Framework實體數據模型 292
13.8.3 Entity Framework運行環境 293
13.8.4 創建實體數據模型 293
13.8.5 通過EF對數據表進行增刪改查操作 297
13.9 小結 300
13.10 實踐與練習 300
第14章 DataGridView數據控制項 301
視頻講解:46分鐘
14.1 DataGridView控制項概述 302
14.2 在DataGridView控制項中顯示數據 302
14.3 獲取DataGridView控制項中的當前單元格 303
14.4 直接在DataGridView控制項中修改數據 304
14.5 當選中DataGridView控制項中的行時顯示不同的顏色 307
14.6 禁止在DataGridView控制項中添加和刪除行 308
14.7 使用Columns和Rows屬性添加數據 309
14.8 小結 310
14.9 實踐與練習 311
第15章 LINQ數據訪問技術 312
視頻講解:1小時2分鐘
15.1 LINQ基礎 313
15.1.1 LINQ概述 313
15.1.2 使用var創建隱型局部變數 314
15.1.4 LINQ查詢表達式 316
15.2 LINQ操作SQL Server資料庫 318
15.2.1 使用LINQ查詢SQL Server資料庫 318
15.2.2 使用LINQ管理SQL Server資料庫 322
15.3 LINQ操作其他數據 329
15.3.1 使用LINQ運算元組和集合 329
15.3.2 使用LINQ操作DataSet數據集 330
15.3.3 使用LINQ操作XML 332
15.4 小結 336
15.5 實踐與練習 336
第16章 程式調試與異常處理 337
視頻講解:39分鐘
16.1 程式調試概述 338
16.2 常用的程式調試操作 338
16.2.1 斷點操作 338
16.2.2 開始執行 340
16.2.3 中斷執行 341
16.2.4 停止執行 342
16.2.5 單步執行和逐過程執行 342
16.2.6 運行到指定位置 343
16.3 異常處理概述 343
16.4 異常處理語句 344
16.4.1 try…catch語句 344
16.4.2 throw語句 346
16.4.3 try…catch…finally語句 347
16.5 小結 349
16.6 實踐與練習 349
第3篇 高級套用
視頻講解:49分鐘
17.1 抽象類與抽象方法 352
17.1.1 抽象類概述及聲明 352
17.1.2 抽象方法概述及聲明 353
17.1.3 抽象類與抽象方法的使用 354
17.2 接口 355
17.2.1 接口的概念及聲明 355
17.2.2 接口的實現與繼承 357
17.2.3 顯式接口成員實現 360
17.2.4 抽象類與接口 361
17.3 密封類與密封方法 362
17.3.1 密封類概述及聲明 362
17.3.2 密封方法概述及聲明 363
17.3.3 密封類與密封方法的使用 363
17.4 委託和匿名方法 365
17.4.1 委託 365
17.4.2 匿名方法 366
17.5 事件 367
17.5.1 委託的發布和訂閱 368
17.5.2 事件的發布和訂閱 369
17.5.3 EventHandler類 370
17.5.4 Windows事件概述 372
17.6 小結 373
17.7 實踐與練習 373
第18章 疊代器和分部類 374
視頻講解:19分鐘
18.1 疊代器 375
18.1.1 疊代器概述 375
18.1.2 疊代器的使用 375
18.2 分部類 376
18.2.1 分部類概述 376
18.2.2 分部類的使用 377
18.3 小結 378
18.4 實踐與練習 379
第19章 泛型 380
視頻講解:22分鐘
19.1 泛型概述 381
19.2 泛型的使用 381
19.2.1 類型參數T 381
19.2.2 泛型接口 382
19.2.3 泛型方法 383
19.3 小結 384
19.4 實踐與練習 384
第20章 檔案及數據流技術 385
視頻講解:1小時22分鐘
20.1 System.IO命名空間 386
20.1.1 File類和Directory類 386
20.1.2 FileInfo類和DirectoryInfo類 390
20.2 檔案基本操作 393
20.2.1 判斷檔案是否存在 393
20.2.2 創建檔案 394
20.2.3 複製或移動檔案 395
20.2.4 刪除檔案 396
20.2.5 獲取檔案的基本信息 397
20.3 資料夾的基本操作 398
20.3.1 判斷資料夾是否存在 398
20.3.2 創建資料夾 399
20.3.3 移動資料夾 400
20.3.4 刪除資料夾 401
20.3.5 遍歷資料夾 401
20.4 數據流 404
20.4.1 流操作類介紹 404
20.4.2 檔案流類 404
20.4.3 文本檔案的寫入與讀取 406
20.4.4 二進制檔案的寫入與讀取 409
20.5 小結 411
20.6 實踐與練習 411
第21章 GDI+圖形圖像技術 412
視頻講解:1小時11分鐘
21.1 GDI+繪圖基礎 413
21.1.1 GDI+概述 413
21.1.2 創建Graphics對象 413
21.1.3 創建Pen對象 414
21.1.4 創建Brush對象 414
21.2 基本圖形繪製 417
21.2.1 GDI+中的直線和矩形 417
21.2.2 GDI+中的橢圓、圓弧和扇形 419
21.2.3 GDI+中的多邊形 422
21.3 GDI+繪圖的套用 424
21.3.1 繪製柱形圖 424
21.3.2 繪製折線圖 427
21.3.3 繪製餅形圖 429
21.4 小結 432
21.5 實踐與練習 432
第22章 Windows列印技術 433
視頻講解:27分鐘
22.1 PageSetupDialog控制項 434
22.2 PrintDialog控制項 436
22.3 PrintDocument控制項 438
22.4 PrintPreviewControl控制項 439
22.5 PrintPreviewDialog控制項 440
22.6 小結 441
22.7 實踐與練習 441
第23章 網路編程技術 442
視頻講解:48分鐘
23.1 網路編程基礎 443
23.1.1 System.Net命名空間 443
23.1.2 System.Net.Sockets命名空間 450
23.2 開發網路應用程式 457
23.2.1 創建Web頁面瀏覽器 457
23.2.2 區域網路聊天程式 458
23.3 小結 461
23.4 實踐與練習 461
第24章 註冊表技術 462
視頻講解:20分鐘
24.1 註冊表基礎 463
24.1.1 Windows註冊表概述 463
24.1.2 Registry和RegistryKey類 463
24.2 在C#中操作註冊表 465
24.2.1 讀取註冊表中的信息 465
24.2.2 創建和修改註冊表信息 467
24.2.3 刪除註冊表中的信息 470
24.3 小結 474
24.4 實踐與練習 474
第25章 執行緒的使用 475
視頻講解:29分鐘
25.1 執行緒簡介 476
25.1.1 單執行緒簡介 476
25.1.2 多執行緒簡介 476
25.2 執行緒的基本操作 477
25.2.1 Thread類 477
25.2.2 創建執行緒 480
25.2.3 執行緒的掛起與恢復 481
25.2.4 執行緒休眠 482
25.2.5 終止執行緒 482
25.2.6 執行緒的優先權 484
25.2.7 執行緒同步 485
25.3 小結 489
25.4 實踐與練習 490
第4篇 項目實戰
視頻講解:1小時54分鐘
26.1 系統分析 493
26.1.1 需求分析 493
26.1.2 可行性分析 493
26.1.3 編寫項目計畫書 494
26.2 系統設計 496
26.2.1 系統目標 496
26.2.2 系統功能結構 496
26.2.4 系統編碼規範 498
26.3 系統運行環境 501
26.4 資料庫與數據表設計 501
26.4.1 資料庫分析 502
26.4.2 創建資料庫 502
26.4.3 創建數據表 505
26.4.4 數據表邏輯關係 510
26.5 創建項目 512
26.6 公共類設計 514
26.6.1 MyMeans公共類 514
26.6.2 MyModule公共類 517
26.7 登錄模組設計 531
26.7.1 設計登錄窗體 532
26.7.2 按Enter鍵時移動滑鼠焦點 532
26.7.3 登錄功能的實現 532
26.8 系統主窗體設計 533
26.8.1 設計選單欄 534
26.8.2 設計工具列 535
26.8.3 設計導航選單 537
26.8.4 設計狀態欄 538
26.9 人事檔案管理模組設計 539
26.9.2 添加/修改人事檔案信息 542
26.9.3 刪除人事檔案信息 544
26.9.4 單條件查詢人事檔案信息 544
26.9.5 逐條查看人事檔案信息 547
26.9.6 將人事檔案信息導出為Word文檔 548
26.9.7 將人事檔案信息導出為Excel表格 553
26.10 人事資料查詢模組設計 558
26.10.1 設計人事資料查詢窗體 558
26.10.2 多條件查詢人事資料 559
26.11 通訊錄模組設計 560
26.11.1 設計通訊錄窗體 561
26.11.2 添加/修改通訊錄信息 561
26.11.3 刪除通訊錄信息 564
26.11.4 查詢通訊錄信息 564
26.12 用戶設定模組設計 565
26.12.1 設計用戶設定窗體 565
26.12.2 添加/修改用戶信息 566
26.12.3 刪除用戶基本信息 568
26.12.4 設定用戶操作許可權 568
26.13 資料庫維護模組設計 569
26.13.1 設計資料庫維護窗體 570
26.13.2 備份資料庫 570
26.13.3 還原資料庫 571
26.14 運行項目 573
26.15 開發的常見問題與解決 574
26.15.1 程式為什麼會無法運行 574
26.15.2 為什麼無法添加職工基本信息 574
26.15.3 選擇職工頭像時出現異常怎么辦 576
26.15.4 資料庫還原不成功應該如何解決 576
26.16 小結 576
附錄 577