C# 程序設計教程, 4/e (微課視頻版)
江紅、餘青松
相關主題
商品描述
本書是《C#程序設計教程》的第4版。書中基於Visual Studio 2017/.NET Framework 4.7開發和運行環境,闡述C# 7.0語言的基礎知識,以及使用C# 7.0語言的實際開發應用實例,具體內容包括:C#語言基礎、面向對象編程、結構、枚舉、泛型、特性、語言集成查詢、多線程編程技術、數值日期和字符串處理、文件和流輸入輸出、集合、數據庫訪問、Windows窗體應用程序、WPF應用程序、ASP.NET Web應用程序設計等。 本書作者結合多年的程序設計、開發及授課經驗,精選大量的實例,由淺入深、循序漸進地介紹C#程序設計語言,讓讀者能夠較為系統全面地掌握程序設計的理論和應用。每個相關知識點都配有視頻講解。本書配有實驗和輔導教材《C#程序設計實驗指導與習題測試(第3版)》,提供了大量的思考與實踐練習,讓讀者從實踐中鞏固和應用所學的知識。 本書可作為高等學校電腦程序設計教程,同時也可作為廣大程序設計開發者、愛好者的自學參考書。
目錄大綱
第1部分 C#面向對象程序設計語言基礎知識
第1章 C#程序設計導論 2
1.1 程序設計語言 2
1.1.1 電腦和程序 2
1.1.2 程序設計和編程語言 2
1.1.3 計算思維和程序設計方法 3
1.1.4 程序的編寫和執行 4
1.2 C#語言概述 4
1.2.1 C#語言簡介 4
1.2.2 C#語言各版本的演變歷史 5
1.2.3 C#特點和開發應用範圍 6
1.3 C#語言的編譯和運行環境 7
1.3.1 C#語言與.NET Framework/.NET SDK 7
1.3.2 C#的運行環境 7
1.3.3 C#的開發環境 8
1.4 使用記事本創建簡單的C#程序 9
1.4.1 Hello World程序 9
1.4.2 代碼分析 9
1.4.3 編譯和運行結果 10
1.5 基於集成開發環境創建簡單的C#程序 10
1.5.1 創建Visual C#控制台應用程序 11
1.5.2 編輯Visual C#源代碼文件 12
1.5.3 編譯和運行調試程序 13
1.6 基於“C#交互”窗口測試C#代碼片段 13
1.6.1 C#交互窗口概述 13
1.6.2 C#交互窗口使用示例 13
1.7 C#程序的結構和書寫規則 14
1.7.1 C#程序的基本結構 14
1.7.2 C#程序的書寫規則 14
1.8 類型的聲明和使用 15
1.8.1 類的聲明 15
1.8.2 對象的創建和使用 15
1.9 命名空間 16
1.9.1 定義命名空間 16
1.9.2 訪問命名空間 16
1.9.3 命名空間別名 17
1.9.4 全局命名空間 18
1.9.5 命名空間舉例 18
1.9.6 外部別名 19
1.10 註釋 19
1.10.1 單行註釋 19
1.10.2 多行註釋 19
1.10.3 內聯註釋 20
1.10.4 XML文檔註釋 20
1.11 Main方法 21
1.11.1 Main方法概述 21
1.11.2 Main方法聲明 21
1.11.3 命令行參數 22
1.11.4 Main返回值 23
1.11.5 頂級語句 24
1.12 數據輸入和輸出 24
1.12.1 System.Console類概述 24
1.12.2 控制台輸入輸出 25
1.12.3 格式化輸出 25
第2章 數據類型、變量和常量 27
2.1 標識符及其命名規則 27
2.1.1 標識符 27
2.1.2 保留關鍵字 27
2.1.3 命名約定 27
2.2 變量 28
2.2.1 變量的分類 28
2.2.2 變量的聲明 28
2.2.3 變量的賦值和引用 28
2.2.4 變量的作用域 29
2.2.5 ref局部變量(C# 7.0) 30
2.3 常量 30
2.3.1 文本常量 30
2.3.2 用戶聲明常量 30
2.4 數據類型 31
2.4.1 類型系統 31
2.4.2 值類型 32
2.4.3 引用類型 32
2.4.4 裝箱和拆箱 33
2.4.5 預定義數據類型 33
2.5 整型 33
2.5.1 預定義整數類型 33
2.5.2 整數類型的主要成員 34
2.5.3 整型常量 34
2.5.4 整型變量的聲明和使用 35
2.6 浮點型 35
2.6.1 浮點類型 35
2.6.2 浮點類型的主要成員 36
2.6.3 浮點類型常量 36
2.6.4 浮點變量的聲明和使用 36
2.6.5 浮點數舍入誤差 37
2.7 decimal型 37
2.7.1 decimal類型 37
2.7.2 System.Decimal的主要成員 37
2.7.3 decimal常量 38
2.7.4 decimal變量的聲明和使用 38
2.8 bool型 38
2.8.1 bool類型 38
2.8.2 System.Boolean的主要成員 38
2.8.3 布爾變量的聲明和使用 39
2.9 char型 39
2.9.1 char類型 39
2.9.2 System.Char類成員 39
2.9.3 字符常量 40
2.9.4 字符變量的聲明和使用 40
2.10 可以為null的類型 41
2.11 string數據類型 42
2.11.1 字符串的表示 42
2.11.2 內插字符串 43
2.12 object類型 43
2.13 隱式類型 43
2.14 類型轉換 44
2.14.1 隱式轉換 44
2.14.2 顯式轉換 45
2.14.3 Convert類提供的類型轉換方法 45
2.14.4 溢出檢查和checked關鍵字 47
2.15 元組 48
2.15.1 元組概述 48
2.15.2 使用元組字面量創建元組對象 48
2.15.3 訪問元組對象的元素 48
2.15.4 使用Tuple類創建元組對象 48
2.15.5 元組對象的解構 49
2.16 臨時虛擬變量(Discard) 49
第3章 語句、運算符和表達式 50
3.1 語句 50
3.1.1 C#語句的組成 50
3.1.2 C#語句的示例 50
3.1.3 C#語句的使用 53
3.2 運算符 53
3.2.1 算術運算符 54
3.2.2 關系和類型測試運算符 56
3.2.3 邏輯運算符 56
3.2.4 賦值運算符 58
3.2.5 字符串運算符 59
3.2.6 位運算符 59
3.2.7 條件運算符 61
3.2.8 null相關運算符 61
3.2.9 其他運算符 61
3.2.10 運算符優先級 62
3.3 表達式 64
3.3.1 表達式的組成 64
3.3.2 表達式的書寫規則 64
3.3.3 表達式的示例 64
第4章 程序流程和異常處理 66
4.1 順序結構 66
4.2 選擇結構 67
4.2.1 if語句 67
4.2.2 switch語句 72
4.2.3 模式匹配(C# 7.0) 74
4.3 循環結構 75
4.3.1 for循環 75
4.3.2 while循環 76
4.3.3 do…while循環 77
4.3.4 foreach循環 79
4.3.5 循環的嵌套 79
4.4 跳轉語句 80
4.4.1 goto語句 80
4.4.2 break語句 81
4.4.3 continue語句 82
4.4.4 return語句 82
4.5 異常處理 83
4.5.1 錯誤和異常 83
4.5.2 異常處理概述 83
4.5.3 內置的異常類 84
4.5.4 自定義異常類 85
4.5.5 引發異常 85
4.5.6 捕獲處理異常try…catch…finally 86
4.5.7 異常過濾器 88
第5章 數組和指針 89
5.1 數組 89
5.1.1 一維數組 90
5.1.2 多維數組 92
5.1.3 交錯數組 95
5.1.4 數組的基本操作和排序 96
5.1.5 作為對象的數組 101
5.2 不安全代碼和指針 103
5.2.1 不安全代碼 103
5.2.2 指針 104
第6章 類和對象 108
6.1 面向對象概念 108
6.1.1 對象的定義 108
6.1.2 封裝 108
6.1.3 繼承 108
6.1.4 多態性 109
6.2 類的聲明 109
6.2.1 聲明類的基本語法 110
6.2.2 類的訪問修飾符 111
6.3 創建和使用對象 112
6.3.1 對象的創建和使用 112
6.3.2 對象初始值設定項 112
6.4 分部類 113
6.4.1 分部類的聲明 113
6.4.2 分部類的應用 114
6.5 System.Object類和通用方法 115
6.5.1 System.Object類 115
6.5.2 System.Object類的通用方法 115
6.5.3 對象的比較 116
6.6 對象的生命周期 117
6.6.1 對象的創建 117
6.6.2 對象的使用 117
6.6.3 對象的銷毀 118
第7章 類成員 119
7.1 類的成員概述 119
7.1.1 類成員分類 119
7.1.2 數據成員和函數成員 119
7.1.3 靜態成員和實例成員 120
7.1.4 this關鍵字 121
7.1.5 類成員的訪問修飾符 122
7.2 字段和常量 123
7.2.1 字段的聲明和訪問 123
7.2.2 實例字段和靜態字段 123
7.2.3 常量字段 124
7.2.4 只讀字段 124
7.2.5 可變字段 126
7.3 方法 126
7.3.1 方法的聲明和調用 126
7.3.2 基於表達式聲明方法(C# 6.0) 127
7.3.3 參數的傳遞 128
7.3.4 引用返回(C# 7.0) 131
7.3.5 方法的重載 132
7.3.6 實例方法和靜態方法 132
7.3.7 分部方法 134
7.3.8 外部方法 134
7.3.9 遞歸方法 135
7.3.10 迭代器方法 136
7.3.11 迭代器對象 136
7.3.12 局部方法(C# 7.0) 137
7.4 屬性 137
7.4.1 屬性的聲明和訪問 137
7.4.2 實例屬性和靜態屬性 139
7.4.3 只讀屬性和只寫屬性 139
7.4.4 基於表達式的只讀屬性(C# 6.0) 139
7.4.5 自動實現的屬性 139
7.4.6 屬性初始化(C# 6.0) 140
7.4.7 基於表達式的屬性訪問器(C# 7.0) 140
7.4.8 使用init初始化屬性(C# 9.0) 140
7.5 索引器 141
7.5.1 索引器的聲明和訪問 141
7.5.2 索引器的重載 142
7.6 運算符重載和轉換運算符 143
7.6.1 運算符重載 143
7.6.2 轉換運算符 144
7.7 構造函數 145
7.7.1 實例構造函數 145
7.7.2 私有構造函數 146
7.7.3 靜態構造函數 147
7.7.4 構造函數的重載 148
7.8 析構函數 148
7.9 嵌套類 150
7.9.1 嵌套類的聲明 150
7.9.2 嵌套類和包含類的關系 150
7.9.3 嵌套類的訪問 151
第8章 繼承和多態 153
8.1 繼承和多態的基本概念 153
8.1.1 繼承和多態 153
8.1.2 繼承的類型 153
8.1.3 繼承的層次關系 154
8.2 繼承 154
8.2.1 派生類 154
8.2.2 base關鍵字 154
8.2.3 構造函數的調用 155
8.2.4 類成員的繼承 157
8.2.5 類成員的隱藏 158
8.2.6 虛方法和隱藏方法 159
8.2.7 虛方法和重寫方法 159
8.3 抽象類和抽象方法 161
8.3.1 抽象類 161
8.3.2 抽象方法 161
8.4 密封類和密封方法 162
8.4.1 密封類 162
8.4.2 密封方法 163
8.5 接口 164
8.5.1 接口聲明 164
8.5.2 接口成員 164
8.5.3 接口實現 165
8.5.4 分部接口 166
8.5.5 接口繼承 167
8.6 多態 168
8.6.1 多態的概念 168
8.6.2 通過繼承實現多態性 168
8.6.3 通過方法重載實現多態性 170
8.6.4 通過方法重寫實現多態性 170
8.6.5 多態性綜合舉例 171
第9章 委托和事件 173
9.1 委托 173
9.1.1 委托的聲明 173
9.1.2 委托的實例化和調用 174
9.1.3 匿名方法委托 176
9.1.4 多播委托 177
9.1.5 委托的異步調用 178
9.1.6 委托的兼容性 179
9.2 事件 179
9.2.1 事件處理機制 179
9.2.2 事件的聲明和引發 181
9.2.3 事件的訂閱和取消 182
9.2.4 靜態事件和實例事件 183
9.2.5 .NET Framework事件模型 183
9.2.6 綜合舉例:事件實現的步驟 183
第10章 結構和枚舉 185
10.1 結構 185
10.1.1 結構概述 185
10.1.2 結構的聲明 186
10.1.3 結構的調用 186
10.1.4 分部結構 187
10.1.5 結構成員 187
10.1.6 嵌套結構 188
10.2 枚舉 188
10.2.1 枚舉概述 188
10.2.2 枚舉聲明 189
10.2.3 枚舉的使用 190
10.2.4 Flags枚舉 191
10.2.5 枚舉的運算和操作 191
第11章 泛型 194
11.1 泛型的基本概念 194
11.1.1 引例ArrayList 194
11.1.2 引例List<T> 195
11.1.3 泛型的概念 195
11.2 泛型的定義 195
11.2.1 泛型的簡單定義 195
11.2.2 開放式泛型類型和封閉式泛型類型 196
11.2.3 泛型類型參數 196
11.2.4 泛型類型參數的約束 197
11.3 泛型類 198
11.3.1 泛型類的聲明和使用 198
11.3.2 泛型類的繼承規則 198
11.4 泛型接口 199
11.4.1 泛型接口的聲明和使用 199
11.4.2 泛型接口的繼承和實現規則 200
11.5 泛型結構 200
11.6 泛型方法 201
11.6.1 泛型方法的聲明和使用 201
11.6.2 泛型方法的設計規則 201
11.7 泛型委托和泛型事件 202
11.7.1 泛型委托 202
11.7.2 泛型事件 203
11.7.3 Func和Action泛型委托 203
11.8 default關鍵字 204
11.9 協變和逆變 204
11.9.1 泛型類型轉換 204
11.9.2 泛型委托的協變和逆變 205
11.9.3 泛型接口的協變和逆變 206
第12章 特性 208
12.1 特性概述 208
12.2 特性的使用 209
12.3 預定義通用特性類 209
12.3.1 ConditionalAttribute類 209
12.3.2 ObsoleteAttribute類 211
12.3.3 AttributeUsageAttribute類 212
12.3.4 調用方信息特性類 212
12.3.5 全局特性 213
12.4 自定義特性類 214
12.5 使用反射訪問特性 214
第13章 語言集成查詢 216
13.1 相關語言要素 216
13.1.1 初始值設定項 216
13.1.2 匿名類型 217
13.1.3 Lambda表達式(匿名函數) 217
13.1.4 擴展方法 218
13.2 LINQ基本操作 219
13.2.1 LINQ基本概念 219
13.2.2 LINQ查詢操作概述 219
13.2.3 獲取數據源 220
13.2.4 創建查詢 220
13.2.5 執行查詢 221
13.3 標準查詢運算符 221
13.3.1 數據排序 221
13.3.2 數據篩選 222
13.3.3 數據投影 223
13.3.4 數據分組 223
13.3.5 連接運算 224
13.3.6 數據分區 226
13.3.7 限定運算 226
13.3.8 聚合運算 226
13.3.9 集合運算 227
13.3.10 生成運算 228
13.3.11 元素操作 228
13.3.12 串聯運算 229
13.3.13 相等運算 229
13.3.14 數據類型轉換 229
13.4 LINQ to Objects 230
13.4.1 LINQ to Objects概述 230
13.4.2 LINQ和字符串 230
13.4.3 LINQ和文件目錄 234
第14章 線程、並行和異步處理 237
14.1 線程處理概述 237
14.1.1 進程和線程 237
14.1.2 線程的優缺點 237
14.2 創建多線程應用程序 238
14.2.1 C#應用程序主線程 238
14.2.2 創建和啟動新線程 238
14.3 線程和生命周期 239
14.3.1 線程和生命周期的狀態 239
14.3.2 Thread類 240
14.3.3 線程的啟動、終止、掛起和喚醒 241
14.3.4 休眠(暫停)線程
Sleep() 241
14.3.5 線程讓步Yield() 242
14.3.6 線程加入Join() 242
14.3.7 線程中斷Interrupt() 242
14.3.8 線程終止/銷毀Abort() 243
14.4 前臺線程和後台線程 244
14.5 線程優先級和線程調度 244
14.6 線程同步和通信 246
14.6.1 線程同步處理 246
14.6.2 使用lock語句同步代碼塊 246
14.6.3 使用監視器同步代碼塊 247
14.6.4 使用MethodImplAttribute特性實現方法同步處理 247
14.6.5 使用SynchronizationAttribute特性實現類同步處理 247
14.6.6 同步事件和等待句柄 247
14.6.7 使用Mutex同步代碼塊 248
14.7 線程池 249
14.7.1 線程池的基本概念 249
14.7.2 創建和使用線程池 249
14.8 定時器Timer 250
14.9 並行處理 251
14.9.1 任務並行庫 251
14.9.2 隱式創建和運行任務 251
14.9.3 顯式創建和運行任務 252
14.9.4 任務的交互操作 252
14.9.5 從任務中返回值 253
14.9.6 數據並行處理 253
14.10 異步處理 254
14.10.1 委托的異步調用 254
14.10.2 async和await關鍵字 255
14.11 綁定 256
14.11.1 靜態綁定和動態綁定 256
14.11.2 動態語言運行時 256
14.11.3 自定義綁定 257
14.11.4 語言綁定 257
14.11.5 dynamic類型 257
第2部分 .NET Framework類庫基本應用
第15章 數值、日期和字符串處理 260
15.1 數學函數 260
15.1.1 Math類和數學函數 260
15.1.2 Random類和隨機函數 262
15.2 日期和時間處理 264
15.2.1 DateTime結構 264
15.2.2 TimeSpan結構 265
15.2.3 日期格式化字符串 266
15.3 字符串處理 266
15.3.1 String類 266
15.3.2 StringBuilder類 269
15.3.3 字符編碼 271
15.4 正則表達式 272
15.4.1 正則表達式語言 272
15.4.2 正則表達式類 275
15.4.3 正則表達式示例 275
第16章 文件和流輸入輸出 277
16.1 文件和流操作概述 277
16.2 磁盤、目錄和文件的基本操作 278
16.2.1 磁盤的基本操作 278
16.2.2 目錄的基本操作 278
16.2.3 文件的基本操作 280
16.3 文本文件的寫入和讀取 281
16.3.1 文本文件的寫入(StreamWriter類) 281
16.3.2 文本文件的讀取(StreamReader類) 282
16.4 二進制文件的寫入和讀取 283
16.4.1 二進制文件的寫入(BinaryWriter類) 283
16.4.2 二進制文件的讀取(BinaryReader類) 284
16.5 隨機文件訪問 284
16.6 通用I/O流類 286
第17章 集合和數據結構 287
17.1 C#集合和數據結構概述 287
17.2 列表類集合類型 289
17.2.1 數組列表ArrayList 289
17.2.2 列表List<T> 290
17.2.3 雙向鏈表LinkedList<T> 290
17.3 字典類集合類型 291
17.3.1 哈希表Hashtable 291
17.3.2 字典Dictionary<TKey, TValue> 292
17.3.3 排序列表SortedList 293
17.3.4 泛型排序列表SortedList<TKey, TValue> 294
17.3.5 排序字典SortedDictionary<TKey, TValue> 295
17.4 隊列集合類型(Queue) 296
17.5 堆棧集合類型(Stack) 297
17.6 散列集集合類型(HashSet<T>) 299
17.7 位集合 300
17.8 專用集合 301
第18章 數據庫訪問 302
18.1 ADO.NET概述 302
18.1.1 ADO.NET的基本概念 302
18.1.2 ADO.NET的結構 302
18.1.3 .NET Framework數據提供程序 302
18.1.4 ADO.NET DataSet 304
18.2 使用ADO.NET連接和操作數據庫 305
18.2.1 使用數據提供程序訪問數據庫的步驟 305
18.2.2 範例數據庫Northwnd.mdf 306
18.2.3 查詢數據庫表數據 308
18.2.4 插入數據庫表數據 308
18.2.5 更新數據庫表數據 309
18.2.6 刪除數據庫表數據 310
18.2.7 使用存儲過程訪問數據庫 310
18.3 使用DataAdapter和DataSet訪問數據庫 311
18.3.1 使用DataAdapter和DataSet訪問數據庫的步驟 311
18.3.2 查詢數據庫表數據 313
18.3.3 維護數據庫表數據 313
第3部分 C#應用程序開發
第19章 Windows窗體應用程序 316
19.1 開發Windows窗體應用程序 316
19.1.1 Windows窗體應用程序概述 316
19.1.2 創建Windows窗體應用程序的一般步驟 318
19.1.3 窗體和控件概述 320
19.2 常用的Windows窗體控件 320
19.2.1 標簽、文本框和命令按鈕 321
19.2.2 單選按鈕、復選框和分組 322
19.2.3 列表選擇控件 324
19.2.4 圖形存儲和顯示控件 326
19.2.5 Timer控件 329
19.3 通用對話框 330
19.3.1 OpenFileDialog對話框 330
19.3.2 SaveFileDialog對話框 330
19.3.3 通用對話框應用舉例 331
19.3.4 FontDialog對話框 332
19.4 菜單和工具欄 333
19.4.1 MenuStrip控件 333
19.4.2 ContextMenuStrip控件 333
19.4.3 ToolStrip控件 333
19.4.4 菜單和工具欄應用舉例 333
19.5 多重窗體 335
19.5.1 添加新窗體 335
19.5.2 調用其他窗體 335
19.5.3 多重窗體應用舉例 336
19.6 多文檔界面 337
19.6.1 創建MDI父窗體 337
19.6.2 創建MDI子窗體 337
19.6.3 處理MDI子窗體 337
19.7 圖形繪制 338
19.7.1 GDI+圖形繪制概述 338
19.7.2 繪制字符串 339
19.7.3 繪制圖形 339
第20章 WPF應用程序 343
20.1 WPF應用程序概述 343
20.1.1 WPF簡介 343
20.1.2 WPF應用程序的構成 343
20.2 創建WPF應用程序 346
20.2.1 創建簡單的WPF應用程序 346
20.2.2 WPF應用程序佈局 347
20.2.3 WPF應用程序常用控件 349
20.3 WPF應用程序與圖形和多媒體 352
20.3.1 圖形和多媒體概述 352
20.3.2 圖形、圖像、畫筆和位圖效果 353
20.3.3 多媒體 358
20.3.4 動畫 361
第21章 ASP.NET Web應用程序 363
21.1 開發ASP.NET Web應用程序 363
21.1.1 ASP.NET Web應用程序概述 363
21.1.2 創建ASP.NET Web應用程序 364
21.2 ASP.NET Web頁面 365
21.2.1 ASP.NET Web頁面概述 365
21.2.2 創建ASP.NET頁面 366
21.3 ASP.NET Web服務器控件 367
21.3.1 ASP.NET Web服務器控件概述 367
21.3.2 使用標準服務器控件創建Web頁面 368
21.4 驗證服務器控件 371
21.4.1 驗證服務器控件概述 371
21.4.2 使用驗證服務器控件創建Web頁面 371
21.5 數據服務器控件 374
21.5.1 數據服務器控件概述 374
21.5.2 使用數據服務器控件創建Web頁面 374
21.6 使用ADO.NET連接和操作數據庫 376
21.7 ASP.NET頁面會話狀態和頁面導航 377
21.7.1 ASP.NET Web應用程序上下文 377
21.7.2 ASP.NET Web應用程序事件 379
21.7.3 ASP.NET Web頁面導航 380
21.8 ASP.NET Web應用程序的佈局和導航 381
21.8.1 ASP.NET Web母版頁 381
21.8.2 ASP.NET Web導航控件 382
21.8.3 應用舉例:設計ASP.NET Web站點 383
21.9 ASP.NET主題和外觀 387
21.9.1 ASP.NET主題和外觀概述 387
21.9.2 定義主題 387
21.9.3 定義外觀 387
21.9.4 定義CSS樣式 387
21.9.5 在頁面中使用主題 388
21.9.6 應用舉例:使用ASP.NET主題和外觀自定義Web站點 389
第22章 綜合應用案例 392
22.1 多窗口文本編輯器系統設計 392
22.1.1 系統基本功能 392
22.1.2 功能模塊設計 392
22.1.3 系統的實現 392
22.2 ASP.NET網上書店系統的設計 396
22.2.1 系統總體設計 396
22.2.2 數據庫設計 396
22.2.3 功能模塊設計 397
22.2.4 系統的實現 397
附 錄
附錄A .NET概述 407
附錄B C#編譯器和預處理器指令 407
附錄C Visual Studio的下載、安裝和使用 407
附錄D C#關鍵字和上下文關鍵字 407
參考文獻 408