C#程式設計教程(第3版)-微課版

C#程式設計教程(第3版)-微課版

《C#程式設計教程(第3版)-微課版》是2018年7月清華大學出版社出版的圖書,作者是江紅、余青松。

基本介紹

  • 書名:C#程式設計教程(第3版)-微課版
  • 作者:江紅
    余青松
  • ISBN:9787302498407
  • 定價:79.80元
  • 出版社:清華大學出版社
  • 出版時間:2018年7月
內容簡介,圖書目錄,

內容簡介

本書是《C#程式設計教程》的第3版。書中基於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#語言介紹 3
1.1 C#語言概述 3
1.1.1 C#語言簡介 3
1.1.2 C#語言各版本的演變歷史 4
1.1.3 C#特點和開發套用範圍 4
1.2 C#語言的芝櫻臭編譯和運行環境 5
1.2.1 C#語言與.NET Framework 5
1.2.2 C#的運行環境 6
1.2.3 C#的開發環境 7
1.2.4 Visual Studio集成開發環境 7
1.3 使用記事本創建簡單的C#程式 8
1.3.1 Hello World程式 8
1.3.2 代碼分析 9
1.3.3 編譯和運行結果 9
1.4 基於集成開捉拳發環境創建簡單的C#程式 10
1.4.1 創建Visual C#控制台應用程式 10
1.4.2 編輯Visual C#原始碼檔案 11
1.4.3 編譯和運行調試程式 11
1.5 基於“C#互動”視窗測試C#代碼片段 12
1.5.1 C#互動視窗概述 12
1.5.2 C#互動視窗使用承棵犁恥示例 12
1.6 C#程式的結構和書寫規則 13
1.6.1 C#程式的基本結構 13
1.6.2 C#程式的書寫規則 14
1.7 類型的聲明講放埋和使用 14
1.7.1 類的聲明 14
1.7.2 對象的創建和使用 15
1.8 命名空間 16
1.8.1 定義命名空間 16
1.8.2 訪問命名空間 16
1.8.3 命名空間別名 17
1.8.4 全局命名空間 18
1.8.5 命名空間舉例 19
1.8.6 外部別名 20
1.9 注釋 21
1.9.1 單行注匪戒符釋 21
1.9.2 多行注釋 21
1.9.3 內聯注釋 21
1.9.4 XML文檔注釋 21
1.10 Main方法 22
1.10.1 Main方法概述 22
1.10.2 Main方法聲明 23
1.10.3 命令行參數 24
1.10.4 Main返回值 26
1.11 控制台輸入和輸出 28
1.11.1 System.Console類概述 28
1.11.2 控制台輸入輸出淚鴉再槳 28
1.11.3 格式化輸出 29
第2章 數據類型、變數和常量 31
2.1 標識符及其命名規則 31
2.1.1 標識符 31
2.1.2 保留關鍵字 31
2.1.3 命名約定 32
2.2 變數 32
2.2.1 變數的分類 32
2.2.2 變數的聲明 32
2.2.3 變數的賦值和引用 33
2.2.4 變數的作用域 34
2.2.5 ref局部變數(C# 7.0) 35
2.3 常量 35
2.3.1 文本常量 35
2.3.2 用戶聲明常量 36
2.4 數據類型 36
2.4.1 類型系統 37
2.4.2 值類型 37
2.4.3 引用類型 37
2.4.4 裝箱和拆箱 38
2.4.5 預定義數據類型 39
2.5 整型數據類型 39
2.5.1 預定義整數類型 39
2.5.2 整數類型的主要成員 40
2.5.3 整型斷和贈常量 40
2.5.4 整型變數的聲明和使用 41
2.6 浮點型數據類型 42
2.6.1 浮點類型 42
2.6.2 浮點類型的主要成員 42
2.6.3 浮點數類型常量 42
2.6.4 浮點變數的聲明和使用 43
2.6.5 浮點數捨入誤差 43
2.7 decimal數據類型 44
2.7.1 decimal類型 44
2.7.2 System.Decimal的主要成員 44
2.7.3 decimal常量 45
2.7.4 decimal變數的聲明和使用 45
2.8 布爾數據類型 45
2.8.1 bool類型 45
2.8.2 System.Boolean的主要成員 46
2.8.3 布爾變數的聲明和使用 46
2.9 字元數據類型 47
2.9.1 字元類型 47
2.9.2 System.Char類成員 47
2.9.3 字元常量 47
2.9.4 字元變數的聲明和使用 48
2.10 可以為null的類型 49
2.11 string數據類型 50
2.11.1 字元串的表示 50
2.11.2 內插字元串 51
2.12 object類型 52
2.13 隱式類型 52
2.14 類型轉換 53
2.14.1 隱式轉換 53
2.14.2 顯式轉換 54
2.14.3 Convert類提供的類型轉換方法 55
2.14.4 溢出檢查和checked關鍵字 56
2.15 元組 57
2.15.1 元組概述 57
2.15.2 使用元組字面量創建元組對象 58
2.15.3 訪問元組對象的元素 58
2.15.4 使用Tuple類創建元組對象 58
2.15.5 元組對象的解構 59
2.16 臨時虛擬變數(Discard) 59
第3章 語句、運算符和表達式 60
3.1 語句 60
3.1.1 C#語句的組成 60
3.1.2 C#語句的示例 61
3.1.3 C#語句的使用 64
3.2 運算符 65
3.2.2 關係和類型測試運算符 67
3.2.6 位運算符 72
3.2.8 null相關運算符 74
3.2.9 其他運算符 75
3.3 表達式 78
3.3.1 表達式的組成 78
3.3.2 表達式的書寫規則 78
3.3.3 表達式的示例 78
第4章 程式流程和異常處理 80
4.1 順序結構 80
4.2 選擇結構 81
4.2.1 if語句 81
4.2.2 switch語句 88
4.2.3 模式匹配(C# 7.0) 90
4.3 循環結構 92
4.3.1 for循環 92
4.3.2 while循環 94
4.3.3 do…while循環 96
4.3.4 foreach循環 98
4.3.5 循環的嵌套 99
4.4 跳轉語句 100
4.4.1 goto語句 100
4.4.2 break語句 101
4.4.3 continue語句 101
4.4.4 return語句 102
4.5 異常處理 103
4.5.1 錯誤和異常 103
4.5.2 異常處理概述 103
4.5.3 內置的異常類 105
4.5.4 自定義異常類 105
4.5.5 引發異常 106
4.5.6 捕獲處理異常try…catch…finally 108
4.5.7 異常過濾器 110
第5章 數組和指針 111
5.1 數組 111
5.1.1 一維數組 113
5.1.2 多維數組 115
5.1.3 交錯數組 118
5.1.4 數組的基本操作和排序 121
5.1.5 作為對象的數組 127
5.2 不安全代碼和指針 129
5.2.1 不安全代碼 129
5.2.2 指針 130
第6章 類和對象 136
6.1 面向對象概念 136
6.1.1 對象的定義 136
6.1.2 封裝 136
6.1.3 繼承 137
6.1.4 多態性 137
6.2 類的聲明 137
6.2.1 聲明類的基本語法 138
6.2.2 類的訪問修飾符 139
6.3 創建和使用對象 140
6.3.1 對象的創建和使用 140
6.3.2 對象初始值設定項 141
6.4 分部類 142
6.4.1 分部類的聲明 142
6.4.2 分部類的套用 144
6.5 System.Object類和通用方法 145
6.5.1 System.Object類 145
6.5.2 System.Object類的通用方法 145
6.5.3 對象的比較 146
6.6 對象的生命周期 148
6.6.1 對象的創建 148
6.6.2 對象的使用 148
6.6.3 對象的銷毀 149
第7章 類成員 150
7.1 類的成員概述 150
7.1.1 類成員分類 150
7.1.2 數據成員和函式成員 151
7.1.3 靜態成員和實例成員 151
7.1.4 this關鍵字 153
7.1.5 類成員的訪問修飾符 154
7.2 欄位和常量 155
7.2.1 欄位的聲明和訪問 155
7.2.2 實例欄位和靜態欄位 156
7.2.3 常量欄位 156
7.2.4 唯讀欄位 157
7.2.5 可變欄位 159
7.3 方法 160
7.3.1 方法的聲明和調用 160
7.3.2 基於表達式聲明方法(C# 6.0) 161
7.3.3 參數的傳遞 162
7.3.4 引用返回(C# 7.0) 167
7.3.5 方法的重載 168
7.3.6 實例方法和靜態方法 169
7.3.7 分部方法 171
7.3.8 外部方法 172
7.3.9 遞歸方法 173
7.3.10 疊代器方法 173
7.3.11 疊代器對象 174
7.3.12 局部方法(C# 7.0) 175
7.4 屬性 176
7.4.1 屬性的聲明和訪問 176
7.4.2 實例屬性和靜態屬性 178
7.4.3 唯讀屬性和只寫屬性 178
7.4.4 基於表達式的唯讀屬性(C# 6.0) 178
7.4.5 自動實現的屬性 178
7.4.6 屬性初始化(C# 6.0) 179
7.4.7 基於表達式的屬性訪問器(C# 7.0) 179
7.5 索引器 180
7.5.1 索引器的聲明和訪問 180
7.5.2 索引器的重載 182
7.6.1 運算符重載 183
7.6.2 轉換運算符 184
7.7 構造函式 186
7.7.1 實例構造函式 186
7.7.2 私有構造函式 188
7.7.3 靜態構造函式 189
7.7.4 構造函式的重載 190
7.8 析構函式 190
7.9 嵌套類 192
7.9.1 嵌套類的聲明 192
7.9.2 嵌套類和包含類的關係 193
7.9.3 嵌套類的訪問 195
第8章 繼承和多態 197
8.1 繼承和多態的基本概念 197
8.1.1 繼承和多態 197
8.1.2 繼承的類型 197
8.1.3 繼承的層次關係 198
8.2 繼承 198
8.2.1 派生類 198
8.2.2 base關鍵字 199
8.2.3 構造函式的調用 200
8.2.4 類成員的繼承 202
8.2.5 類成員的隱藏 204
8.2.6 虛方法和隱藏方法 205
8.2.7 虛方法和重寫方法 205
8.3 抽象類和抽象方法 207
8.3.1 抽象類 207
8.3.2 抽象方法 208
8.4 密封類和密封方法 210
8.4.1 密封類 210
8.4.2 密封方法 210
8.5 接口 211
8.5.1 接口聲明 211
8.5.2 接口成員 212
8.5.3 接口實現 213
8.5.4 分部接口 215
8.5.5 接口繼承 215
8.6 多態 217
8.6.1 多態的概念 217
8.6.2 通過繼承實現多態性 217
8.6.3 通過方法重載實現多態性 220
8.6.4 通過方法重寫實現多態性 221
8.6.5 多態性綜合舉例 222
第9章 委託和事件 224
9.1 委託 224
9.1.1 委託的聲明 224
9.1.2 委託的實例化和調用 225
9.1.3 匿名方法委託 228
9.1.4 多播委託 229
9.1.5 委託的異步調用 231
9.1.6 委託的兼容性 232
9.2 事件 233
9.2.1 事件處理機制 233
9.2.2 事件的聲明和引發 235
9.2.3 事件的訂閱和取消 236
9.2.4 靜態事件和實例事件 237
9.2.5 .NET Framework事件模型 237
9.2.6 綜合舉例:事件實現的步驟 238
第10章 結構和枚舉 240
10.1 結構 240
10.1.1 結構概述 240
10.1.2 結構的聲明 241
10.1.3 結構的調用 242
10.1.4 分部結構 243
10.1.5 結構成員 243
10.1.6 嵌套結構 243
10.2 枚舉 245
10.2.1 枚舉概述 245
10.2.2 枚舉聲明 245
10.2.3 枚舉的使用 247
10.2.4 Flags枚舉 248
10.2.5 枚舉的運算和操作 249
第11章 泛型 252
11.1 泛型的基本概念 252
11.1.1 引例ArrayList 252
11.1.2 引例List<T> 253
11.1.3 泛型的概念 253
11.2 泛型的定義 254
11.2.1 泛型的簡單定義 254
11.2.2 開放式泛型類型和封閉式泛型類型 255
11.2.3 泛型類型參數 255
11.2.4 泛型類型參數的約束 256
11.3 泛型類 257
11.3.1 泛型類的聲明和使用 257
11.3.2 泛型類的繼承規則 258
11.4 泛型接口 259
11.4.1 泛型接口的聲明和使用 259
11.4.2 泛型接口的繼承和實現規則 260
11.5 泛型結構 260
11.6 泛型方法 261
11.6.1 泛型方法的聲明和使用 261
11.6.2 泛型方法的設計規則 262
11.7 泛型委託和泛型事件 263
11.7.1 泛型委託 263
11.7.2 泛型事件 264
11.7.3 Func和Action泛型委託 265
11.8 default關鍵字 266
11.9 協變和逆變 266
11.9.1 泛型類型轉換 266
11.9.2 泛型委託的協變和逆變 268
11.9.3 泛型接口的協變和逆變 269
第12章 特性 271
12.1 特性概述 271
12.2 特性的使用 272
12.3 預定義通用特性類 273
12.3.1 ConditionalAttribute類 273
12.3.2 ObsoleteAttribute類 275
12.3.3 AttributeUsageAttribute類 276
12.3.4 調用方信息特性類 277
12.3.5 全局特性 278
12.4 自定義特性類 279
12.5 使用反射訪問特性 280
第13章 語言集成查詢 282
13.1 相關語言要素 282
13.1.1 初始值設定項 282
13.1.2 匿名類型 283
13.1.3 Lambda表達式(匿名函式) 283
13.1.4 擴展方法 284
13.2 LINQ基本操作 286
13.2.1 LINQ基本概念 286
13.2.2 LINQ查詢操作概述 286
13.2.3 獲取數據源 287
13.2.4 創建查詢 288
13.2.5 執行查詢 288
13.3 標準查詢運算符 289
13.3.1 數據排序 289
13.3.2 數據篩選 291
13.3.3 數據投影 291
13.3.4 數據分組 291
13.3.5 聯接運算 292
13.3.6 數據分區 295
13.3.7 限定運算 295
13.3.8 聚合運算 296
13.3.9 集合運算 296
13.3.10 生成運算 297
13.3.11 元素操作 297
13.3.12 串聯運算 298
13.3.13 相等運算 298
13.3.14 數據類型轉換 299
13.4 LINQ to Objects 300
13.4.1 LINQ to Objects概述 300
13.4.2 LINQ和字元串 300
13.4.3 LINQ和檔案 305
第14章 執行緒、並行和異步處理 309
14.1 執行緒處理概述 309
14.1.1 進程和執行緒 309
14.1.2 執行緒的優缺點 310
14.2 創建多執行緒應用程式 310
14.2.1 C#應用程式主執行緒 310
14.2.2 創建和啟動新執行緒 311
14.3 執行緒和生命周期 312
14.3.1 執行緒和生命周期的狀態 312
14.3.2 Thread類 313
14.3.3 執行緒的啟動、終止、掛起和喚醒 314
14.3.4 休眠(暫停)執行緒Sleep() 315
14.3.5 執行緒讓步Yield() 315
14.3.6 執行緒加入Join() 316
14.3.7 執行緒中斷Interrupt() 316
14.3.8 執行緒終止/銷毀Abort() 317
14.4 前台執行緒和後台執行緒 318
14.5 執行緒優先權和執行緒調度 319
14.6 執行緒同步和通信 321
14.6.1 執行緒同步處理 321
14.6.2 使用lock語句同步代碼塊 321
14.6.3 使用監視器同步代碼塊 322
14.6.4 使用MethodImplAttribute特性實現方法同步處理 323
14.6.5 使用SynchronizationAttribute特性實現類同步處理 323
14.6.6 同步事件和等待句柄 323
14.6.7 使用Mutex同步代碼塊 324
14.7 執行緒池 325
14.7.1 執行緒池的基本概念 325
14.7.2 創建和使用執行緒池 326
14.8 定時器Timer 327
14.9 並行處理 328
14.9.1 任務並行庫 328
14.9.2 隱式創建和運行任務 328
14.9.3 顯式創建和運行任務 329
14.9.4 任務的互動操作 330
14.9.5 從任務中返回值 331
14.9.6 數據並行處理 331
14.10 異步處理 332
14.10.1 委託的異步調用 332
14.10.2 async和await關鍵字 334
14.11 綁定 335
14.11.1 靜態綁定和動態綁定 335
14.11.2 動態語言運行時 335
14.11.3 自定義綁定 336
14.11.4 語言綁定 336
14.11.5 dynamic類型 337
第2部分 .NET Framework類庫基本套用
第15章 數值、日期和字元串處理 341
15.1 數學函式 341
15.1.1 Math類和數學函式 341
15.1.2 Random類和隨機函式 344
15.2 日期和時間處理 346
15.2.1 DateTime結構 346
15.2.2 TimeSpan結構 348
15.2.3 日期格式化字元串 349
15.3 字元串處理 349
15.3.1 String類 349
15.3.2 StringBuilder類 354
15.3.3 字元編碼 357
15.4.1 正則表達式語言 358
15.4.2 正則表達式類 361
15.4.3 正則表達式示例 361
第16章 檔案和流輸入輸出 364
16.1 檔案和流操作概述 364
16.2 磁碟、和檔案的基本操作 365
16.2.1 磁碟的基本操作 365
16.2.2 的基本操作 366
16.2.3 檔案的基本操作 367
16.3 文本檔案的寫入和讀取 370
16.3.1 文本檔案的寫入(StreamWriter類) 370
16.3.2 文本檔案的讀取(StreamReader類) 371
16.4 二進制檔案的寫入和讀取 372
16.4.1 二進制檔案的寫入(BinaryWriter類) 372
16.4.2 二進制檔案的讀取(BinaryReader類) 373
16.5 隨機檔案訪問 374
16.6 通用I/O流類 376
第17章 集合和數據結構 377
17.1 C#集合和數據結構概述 377
17.2 列表類集合類型 379
17.2.1 數組列表ArrayList 379
17.2.2 列表List<T> 380
17.2.3 雙向鍊表LinkedList<T> 381
17.3 字典類集合類型 382
17.3.1 哈希表Hashtable 383
17.3.2 字典Dictionary<TKey, TValue > 384
17.3.3 排序列表SortedList 385
17.3.4 泛型排序列表SortedList<TKey, TValue> 387
17.3.5 排序字典SortedDictionary<TKey, TValue> 388
17.4 佇列集合類型(Queue) 389
17.5 堆疊集合類型(Stack) 391
17.6 散列集集合類型(HashSet<T>) 392
17.7 位集合 394
17.8 專用集合 395
第18章 資料庫訪問 396
18.1 ADO.NET概述 396
18.1.1 ADO.NET的基本概念 396
18.1.2 ADO.NET的結構 396
18.1.3 .NET Framework數據提供程式 397
18.1.4 ADO.NET DataSet 398
18.2 使用ADO.NET連線和運算元據庫 399
18.2.1 使用數據提供程式訪問資料庫的步驟 399
18.2.2 範例資料庫Northwnd.mdf 401
18.2.3 查詢資料庫表數據 403
18.2.4 插入資料庫表數據 404
18.2.5 更新資料庫表數據 405
18.2.6 刪除資料庫表數據 405
18.2.7 使用存儲過程訪問資料庫 406
18.3 使用DataAdapter和DataSet訪問資料庫 408
18.3.1 使用DataAdapter和DataSet訪問資料庫的步驟 408
18.3.2 查詢資料庫表數據 409
18.3.3 維護資料庫表數據 410
第3部分 C#應用程式開發
19.1 開發Windows窗體應用程式 415
19.1.1 Windows窗體應用程式概述 415
19.1.2 創建Windows窗體應用程式的一般步驟 417
19.1.3 窗體和控制項概述 420
19.2 常用的Windows窗體控制項 420
19.2.1 標籤、文本框和命令按鈕 420
19.2.2 單選按鈕、複選框和分組 422
19.2.3 列表選擇控制項 424
19.2.4 圖形存儲和顯示控制項 427
19.2.5 Timer控制項 430
19.3 通用對話框 431
19.3.1 OpenFileDialog對話框 432
19.3.2 SaveFileDialog對話框 432
19.3.3 通用對話框套用舉例 433
19.3.4 FontDialog對話框 435
19.4 選單和工具列 435
19.4.2 ContextMenuStrip控制項 435
19.4.3 ToolStrip控制項 436
19.4.4 選單和工具列套用舉例 436
19.5 多重窗體 438
19.5.1 添加新窗體 438
19.5.2 調用其他窗體 438
19.5.3 多重窗體套用舉例 439
19.6 多文檔界面 440
19.6.1 創建MDI父窗體 440
19.6.2 創建MDI子窗體 440
19.6.3 處理MDI子窗體 441
19.7 圖形繪製 441
19.7.1 GDI+圖形繪製概述 441
19.7.2 繪製字元串 443
19.7.3 繪製圖形 443
第20章 WPF應用程式 448
20.1 WPF應用程式概述 448
20.1.1 WPF簡介 448
20.1.2 WPF應用程式的構成 448
20.2 創建WPF應用程式 452
20.2.1 創建簡單的WPF應用程式 452
20.2.2 WPF應用程式布局 453
20.2.3 WPF應用程式常用控制項 456
20.3 WPF應用程式與圖形和多媒體 460
20.3.1 圖形和多媒體概述 460
20.3.2 圖形、圖像、畫筆和點陣圖效果 461
20.3.3 多媒體 469
20.3.4 動畫 472
第21章 ASP.NET Web應用程式 475
21.1 開發ASP.NET Web應用程式 475
21.1.1 ASP.NET Web應用程式概述 475
21.1.2 創建ASP.NET Web應用程式 476
21.2 ASP.NET Web頁面 477
21.2.1 ASP.NET Web頁面概述 477
21.2.2 創建ASP.NET頁面 478
21.3 ASP.NET Web伺服器控制項 480
21.3.1 ASP.NET Web伺服器控制項概述 480
21.3.2 使用標準伺服器控制項創建Web頁面 481
21.4 驗證伺服器控制項 484
21.4.1 驗證伺服器控制項概述 484
21.4.2 使用驗證伺服器控制項創建Web頁面 484
21.5 數據伺服器控制項 487
21.5.1 數據伺服器控制項概述 487
21.5.2 使用數據伺服器控制項創建Web頁面 487
21.6 使用ADO.NET連線和運算元據庫 490
21.7 ASP.NET頁面會話狀態和頁面導航 491
21.7.1 ASP.NET Web應用程式上下文 491
21.7.2 ASP.NET Web應用程式事件 493
21.7.3 ASP.NET Web頁面導航 495
21.8 ASP.NET Web應用程式的布局和導航 496
21.8.1 ASP.NET Web母版頁 496
21.8.2 ASP.NET Web導航控制項 497
21.8.3 套用舉例:設計ASP.NET Web站點 498
21.9 ASP.NET主題和外觀 502
21.9.1 ASP.NET主題和外觀概述 502
21.9.2 定義主題 503
21.9.3 定義外觀 503
21.9.4 定義CSS樣式 503
21.9.5 在頁面中使用主題 505
21.9.6 套用舉例:使用ASP.NET主題和外觀自定義Web站點 506
第22章 綜合套用案例 509
22.1 多視窗文本編輯器系統設計 509
22.1.1 系統基本功能 509
22.1.2 功能模組設計 509
22.1.3 系統的實現 509
22.2 ASP.NET網上書店系統的設計 514
22.2.1 系統總體設計 514
22.2.2 資料庫設計 514
22.2.3 功能模組設計 515
22.2.4 系統的實現 516
附錄A .NET Framework和.NET Core概述 528
A1 .NET Framework的概念 528
A1.1 公共語言運行時 528
A1.2 .NET Framework類庫 528
A2 .NET Framework的功能特點 529
A3 .NET Framework環境 529
A4 .NET Framework的主要版本 530
A5 .NET Core 530
A5.1 .NET Core概述 530
A5.2 .NET Core組成 530
A5.3 .NET Core與.NET Framework比較 530
A5.4 .NET Core與Mono比較 531
附錄B C#編譯器和預處理器指令 532
B1 C#編譯器概述 532
B2 C#編譯器選項 532
B3 C#預處理器指令 534
附錄C Visual Studio快速入門 537
C1 集成開發環境(IDE)界面 537
C2 創建解決方案和項目 537
C3 設計器/編輯器 539
C4 生成和調試工具 540
C5 安裝和部署工具 541
C6 幫助系統 541
附錄D C#關鍵字和上下文關鍵字 542
D1 關鍵字 542
D2 上下文關鍵字 544
附錄E 格式化字元串 546
E1 複合格式設定 546
E2 複合格式字元串 546
E3 數字格式字元串 547
E4 標準日期和時間格式字元串 549
附錄F XML文檔注釋 553
附錄G ASCII碼錶 557
附錄H 程式集、應用程式域和反射 558
H1 程式集 558
H1.1 程式集概述 558
H1.2 創建程式集 558
H2 應用程式域 558
H2.1 應用程式域概述 558
H2.2 創建應用程式域 559
H3 反射 559
H3.1 反射概述 559
H3.2 查看類型信息 560
H3.3 動態載入和使用類型 561
參考文獻 562
1.9.2 多行注釋 21
1.9.3 內聯注釋 21
1.9.4 XML文檔注釋 21
1.10 Main方法 22
1.10.1 Main方法概述 22
1.10.2 Main方法聲明 23
1.10.3 命令行參數 24
1.10.4 Main返回值 26
1.11 控制台輸入和輸出 28
1.11.1 System.Console類概述 28
1.11.2 控制台輸入輸出 28
1.11.3 格式化輸出 29
第2章 數據類型、變數和常量 31
2.1 標識符及其命名規則 31
2.1.1 標識符 31
2.1.2 保留關鍵字 31
2.1.3 命名約定 32
2.2 變數 32
2.2.1 變數的分類 32
2.2.2 變數的聲明 32
2.2.3 變數的賦值和引用 33
2.2.4 變數的作用域 34
2.2.5 ref局部變數(C# 7.0) 35
2.3 常量 35
2.3.1 文本常量 35
2.3.2 用戶聲明常量 36
2.4 數據類型 36
2.4.1 類型系統 37
2.4.2 值類型 37
2.4.3 引用類型 37
2.4.4 裝箱和拆箱 38
2.4.5 預定義數據類型 39
2.5 整型數據類型 39
2.5.1 預定義整數類型 39
2.5.2 整數類型的主要成員 40
2.5.3 整型常量 40
2.5.4 整型變數的聲明和使用 41
2.6 浮點型數據類型 42
2.6.1 浮點類型 42
2.6.2 浮點類型的主要成員 42
2.6.3 浮點數類型常量 42
2.6.4 浮點變數的聲明和使用 43
2.6.5 浮點數捨入誤差 43
2.7 decimal數據類型 44
2.7.1 decimal類型 44
2.7.2 System.Decimal的主要成員 44
2.7.3 decimal常量 45
2.7.4 decimal變數的聲明和使用 45
2.8 布爾數據類型 45
2.8.1 bool類型 45
2.8.2 System.Boolean的主要成員 46
2.8.3 布爾變數的聲明和使用 46
2.9 字元數據類型 47
2.9.1 字元類型 47
2.9.2 System.Char類成員 47
2.9.3 字元常量 47
2.9.4 字元變數的聲明和使用 48
2.10 可以為null的類型 49
2.11 string數據類型 50
2.11.1 字元串的表示 50
2.11.2 內插字元串 51
2.12 object類型 52
2.13 隱式類型 52
2.14 類型轉換 53
2.14.1 隱式轉換 53
2.14.2 顯式轉換 54
2.14.3 Convert類提供的類型轉換方法 55
2.14.4 溢出檢查和checked關鍵字 56
2.15 元組 57
2.15.1 元組概述 57
2.15.2 使用元組字面量創建元組對象 58
2.15.3 訪問元組對象的元素 58
2.15.4 使用Tuple類創建元組對象 58
2.15.5 元組對象的解構 59
2.16 臨時虛擬變數(Discard) 59
第3章 語句、運算符和表達式 60
3.1 語句 60
3.1.1 C#語句的組成 60
3.1.2 C#語句的示例 61
3.1.3 C#語句的使用 64
3.2 運算符 65
3.2.2 關係和類型測試運算符 67
3.2.6 位運算符 72
3.2.8 null相關運算符 74
3.2.9 其他運算符 75
3.3 表達式 78
3.3.1 表達式的組成 78
3.3.2 表達式的書寫規則 78
3.3.3 表達式的示例 78
第4章 程式流程和異常處理 80
4.1 順序結構 80
4.2 選擇結構 81
4.2.1 if語句 81
4.2.2 switch語句 88
4.2.3 模式匹配(C# 7.0) 90
4.3 循環結構 92
4.3.1 for循環 92
4.3.2 while循環 94
4.3.3 do…while循環 96
4.3.4 foreach循環 98
4.3.5 循環的嵌套 99
4.4 跳轉語句 100
4.4.1 goto語句 100
4.4.2 break語句 101
4.4.3 continue語句 101
4.4.4 return語句 102
4.5 異常處理 103
4.5.1 錯誤和異常 103
4.5.2 異常處理概述 103
4.5.3 內置的異常類 105
4.5.4 自定義異常類 105
4.5.5 引發異常 106
4.5.6 捕獲處理異常try…catch…finally 108
4.5.7 異常過濾器 110
第5章 數組和指針 111
5.1 數組 111
5.1.1 一維數組 113
5.1.2 多維數組 115
5.1.3 交錯數組 118
5.1.4 數組的基本操作和排序 121
5.1.5 作為對象的數組 127
5.2 不安全代碼和指針 129
5.2.1 不安全代碼 129
5.2.2 指針 130
第6章 類和對象 136
6.1 面向對象概念 136
6.1.1 對象的定義 136
6.1.2 封裝 136
6.1.3 繼承 137
6.1.4 多態性 137
6.2 類的聲明 137
6.2.1 聲明類的基本語法 138
6.2.2 類的訪問修飾符 139
6.3 創建和使用對象 140
6.3.1 對象的創建和使用 140
6.3.2 對象初始值設定項 141
6.4 分部類 142
6.4.1 分部類的聲明 142
6.4.2 分部類的套用 144
6.5 System.Object類和通用方法 145
6.5.1 System.Object類 145
6.5.2 System.Object類的通用方法 145
6.5.3 對象的比較 146
6.6 對象的生命周期 148
6.6.1 對象的創建 148
6.6.2 對象的使用 148
6.6.3 對象的銷毀 149
第7章 類成員 150
7.1 類的成員概述 150
7.1.1 類成員分類 150
7.1.2 數據成員和函式成員 151
7.1.3 靜態成員和實例成員 151
7.1.4 this關鍵字 153
7.1.5 類成員的訪問修飾符 154
7.2 欄位和常量 155
7.2.1 欄位的聲明和訪問 155
7.2.2 實例欄位和靜態欄位 156
7.2.3 常量欄位 156
7.2.4 唯讀欄位 157
7.2.5 可變欄位 159
7.3 方法 160
7.3.1 方法的聲明和調用 160
7.3.2 基於表達式聲明方法(C# 6.0) 161
7.3.3 參數的傳遞 162
7.3.4 引用返回(C# 7.0) 167
7.3.5 方法的重載 168
7.3.6 實例方法和靜態方法 169
7.3.7 分部方法 171
7.3.8 外部方法 172
7.3.9 遞歸方法 173
7.3.10 疊代器方法 173
7.3.11 疊代器對象 174
7.3.12 局部方法(C# 7.0) 175
7.4 屬性 176
7.4.1 屬性的聲明和訪問 176
7.4.2 實例屬性和靜態屬性 178
7.4.3 唯讀屬性和只寫屬性 178
7.4.4 基於表達式的唯讀屬性(C# 6.0) 178
7.4.5 自動實現的屬性 178
7.4.6 屬性初始化(C# 6.0) 179
7.4.7 基於表達式的屬性訪問器(C# 7.0) 179
7.5 索引器 180
7.5.1 索引器的聲明和訪問 180
7.5.2 索引器的重載 182
7.6.1 運算符重載 183
7.6.2 轉換運算符 184
7.7 構造函式 186
7.7.1 實例構造函式 186
7.7.2 私有構造函式 188
7.7.3 靜態構造函式 189
7.7.4 構造函式的重載 190
7.8 析構函式 190
7.9 嵌套類 192
7.9.1 嵌套類的聲明 192
7.9.2 嵌套類和包含類的關係 193
7.9.3 嵌套類的訪問 195
第8章 繼承和多態 197
8.1 繼承和多態的基本概念 197
8.1.1 繼承和多態 197
8.1.2 繼承的類型 197
8.1.3 繼承的層次關係 198
8.2 繼承 198
8.2.1 派生類 198
8.2.2 base關鍵字 199
8.2.3 構造函式的調用 200
8.2.4 類成員的繼承 202
8.2.5 類成員的隱藏 204
8.2.6 虛方法和隱藏方法 205
8.2.7 虛方法和重寫方法 205
8.3 抽象類和抽象方法 207
8.3.1 抽象類 207
8.3.2 抽象方法 208
8.4 密封類和密封方法 210
8.4.1 密封類 210
8.4.2 密封方法 210
8.5 接口 211
8.5.1 接口聲明 211
8.5.2 接口成員 212
8.5.3 接口實現 213
8.5.4 分部接口 215
8.5.5 接口繼承 215
8.6 多態 217
8.6.1 多態的概念 217
8.6.2 通過繼承實現多態性 217
8.6.3 通過方法重載實現多態性 220
8.6.4 通過方法重寫實現多態性 221
8.6.5 多態性綜合舉例 222
第9章 委託和事件 224
9.1 委託 224
9.1.1 委託的聲明 224
9.1.2 委託的實例化和調用 225
9.1.3 匿名方法委託 228
9.1.4 多播委託 229
9.1.5 委託的異步調用 231
9.1.6 委託的兼容性 232
9.2 事件 233
9.2.1 事件處理機制 233
9.2.2 事件的聲明和引發 235
9.2.3 事件的訂閱和取消 236
9.2.4 靜態事件和實例事件 237
9.2.5 .NET Framework事件模型 237
9.2.6 綜合舉例:事件實現的步驟 238
第10章 結構和枚舉 240
10.1 結構 240
10.1.1 結構概述 240
10.1.2 結構的聲明 241
10.1.3 結構的調用 242
10.1.4 分部結構 243
10.1.5 結構成員 243
10.1.6 嵌套結構 243
10.2 枚舉 245
10.2.1 枚舉概述 245
10.2.2 枚舉聲明 245
10.2.3 枚舉的使用 247
10.2.4 Flags枚舉 248
10.2.5 枚舉的運算和操作 249
第11章 泛型 252
11.1 泛型的基本概念 252
11.1.1 引例ArrayList 252
11.1.2 引例List<T> 253
11.1.3 泛型的概念 253
11.2 泛型的定義 254
11.2.1 泛型的簡單定義 254
11.2.2 開放式泛型類型和封閉式泛型類型 255
11.2.3 泛型類型參數 255
11.2.4 泛型類型參數的約束 256
11.3 泛型類 257
11.3.1 泛型類的聲明和使用 257
11.3.2 泛型類的繼承規則 258
11.4 泛型接口 259
11.4.1 泛型接口的聲明和使用 259
11.4.2 泛型接口的繼承和實現規則 260
11.5 泛型結構 260
11.6 泛型方法 261
11.6.1 泛型方法的聲明和使用 261
11.6.2 泛型方法的設計規則 262
11.7 泛型委託和泛型事件 263
11.7.1 泛型委託 263
11.7.2 泛型事件 264
11.7.3 Func和Action泛型委託 265
11.8 default關鍵字 266
11.9 協變和逆變 266
11.9.1 泛型類型轉換 266
11.9.2 泛型委託的協變和逆變 268
11.9.3 泛型接口的協變和逆變 269
第12章 特性 271
12.1 特性概述 271
12.2 特性的使用 272
12.3 預定義通用特性類 273
12.3.1 ConditionalAttribute類 273
12.3.2 ObsoleteAttribute類 275
12.3.3 AttributeUsageAttribute類 276
12.3.4 調用方信息特性類 277
12.3.5 全局特性 278
12.4 自定義特性類 279
12.5 使用反射訪問特性 280
第13章 語言集成查詢 282
13.1 相關語言要素 282
13.1.1 初始值設定項 282
13.1.2 匿名類型 283
13.1.3 Lambda表達式(匿名函式) 283
13.1.4 擴展方法 284
13.2 LINQ基本操作 286
13.2.1 LINQ基本概念 286
13.2.2 LINQ查詢操作概述 286
13.2.3 獲取數據源 287
13.2.4 創建查詢 288
13.2.5 執行查詢 288
13.3 標準查詢運算符 289
13.3.1 數據排序 289
13.3.2 數據篩選 291
13.3.3 數據投影 291
13.3.4 數據分組 291
13.3.5 聯接運算 292
13.3.6 數據分區 295
13.3.7 限定運算 295
13.3.8 聚合運算 296
13.3.9 集合運算 296
13.3.10 生成運算 297
13.3.11 元素操作 297
13.3.12 串聯運算 298
13.3.13 相等運算 298
13.3.14 數據類型轉換 299
13.4 LINQ to Objects 300
13.4.1 LINQ to Objects概述 300
13.4.2 LINQ和字元串 300
13.4.3 LINQ和檔案 305
第14章 執行緒、並行和異步處理 309
14.1 執行緒處理概述 309
14.1.1 進程和執行緒 309
14.1.2 執行緒的優缺點 310
14.2 創建多執行緒應用程式 310
14.2.1 C#應用程式主執行緒 310
14.2.2 創建和啟動新執行緒 311
14.3 執行緒和生命周期 312
14.3.1 執行緒和生命周期的狀態 312
14.3.2 Thread類 313
14.3.3 執行緒的啟動、終止、掛起和喚醒 314
14.3.4 休眠(暫停)執行緒Sleep() 315
14.3.5 執行緒讓步Yield() 315
14.3.6 執行緒加入Join() 316
14.3.7 執行緒中斷Interrupt() 316
14.3.8 執行緒終止/銷毀Abort() 317
14.4 前台執行緒和後台執行緒 318
14.5 執行緒優先權和執行緒調度 319
14.6 執行緒同步和通信 321
14.6.1 執行緒同步處理 321
14.6.2 使用lock語句同步代碼塊 321
14.6.3 使用監視器同步代碼塊 322
14.6.4 使用MethodImplAttribute特性實現方法同步處理 323
14.6.5 使用SynchronizationAttribute特性實現類同步處理 323
14.6.6 同步事件和等待句柄 323
14.6.7 使用Mutex同步代碼塊 324
14.7 執行緒池 325
14.7.1 執行緒池的基本概念 325
14.7.2 創建和使用執行緒池 326
14.8 定時器Timer 327
14.9 並行處理 328
14.9.1 任務並行庫 328
14.9.2 隱式創建和運行任務 328
14.9.3 顯式創建和運行任務 329
14.9.4 任務的互動操作 330
14.9.5 從任務中返回值 331
14.9.6 數據並行處理 331
14.10 異步處理 332
14.10.1 委託的異步調用 332
14.10.2 async和await關鍵字 334
14.11 綁定 335
14.11.1 靜態綁定和動態綁定 335
14.11.2 動態語言運行時 335
14.11.3 自定義綁定 336
14.11.4 語言綁定 336
14.11.5 dynamic類型 337
第2部分 .NET Framework類庫基本套用
第15章 數值、日期和字元串處理 341
15.1 數學函式 341
15.1.1 Math類和數學函式 341
15.1.2 Random類和隨機函式 344
15.2 日期和時間處理 346
15.2.1 DateTime結構 346
15.2.2 TimeSpan結構 348
15.2.3 日期格式化字元串 349
15.3 字元串處理 349
15.3.1 String類 349
15.3.2 StringBuilder類 354
15.3.3 字元編碼 357
15.4.1 正則表達式語言 358
15.4.2 正則表達式類 361
15.4.3 正則表達式示例 361
第16章 檔案和流輸入輸出 364
16.1 檔案和流操作概述 364
16.2 磁碟、和檔案的基本操作 365
16.2.1 磁碟的基本操作 365
16.2.2 的基本操作 366
16.2.3 檔案的基本操作 367
16.3 文本檔案的寫入和讀取 370
16.3.1 文本檔案的寫入(StreamWriter類) 370
16.3.2 文本檔案的讀取(StreamReader類) 371
16.4 二進制檔案的寫入和讀取 372
16.4.1 二進制檔案的寫入(BinaryWriter類) 372
16.4.2 二進制檔案的讀取(BinaryReader類) 373
16.5 隨機檔案訪問 374
16.6 通用I/O流類 376
第17章 集合和數據結構 377
17.1 C#集合和數據結構概述 377
17.2 列表類集合類型 379
17.2.1 數組列表ArrayList 379
17.2.2 列表List<T> 380
17.2.3 雙向鍊表LinkedList<T> 381
17.3 字典類集合類型 382
17.3.1 哈希表Hashtable 383
17.3.2 字典Dictionary<TKey, TValue > 384
17.3.3 排序列表SortedList 385
17.3.4 泛型排序列表SortedList<TKey, TValue> 387
17.3.5 排序字典SortedDictionary<TKey, TValue> 388
17.4 佇列集合類型(Queue) 389
17.5 堆疊集合類型(Stack) 391
17.6 散列集集合類型(HashSet<T>) 392
17.7 位集合 394
17.8 專用集合 395
第18章 資料庫訪問 396
18.1 ADO.NET概述 396
18.1.1 ADO.NET的基本概念 396
18.1.2 ADO.NET的結構 396
18.1.3 .NET Framework數據提供程式 397
18.1.4 ADO.NET DataSet 398
18.2 使用ADO.NET連線和運算元據庫 399
18.2.1 使用數據提供程式訪問資料庫的步驟 399
18.2.2 範例資料庫Northwnd.mdf 401
18.2.3 查詢資料庫表數據 403
18.2.4 插入資料庫表數據 404
18.2.5 更新資料庫表數據 405
18.2.6 刪除資料庫表數據 405
18.2.7 使用存儲過程訪問資料庫 406
18.3 使用DataAdapter和DataSet訪問資料庫 408
18.3.1 使用DataAdapter和DataSet訪問資料庫的步驟 408
18.3.2 查詢資料庫表數據 409
18.3.3 維護資料庫表數據 410
第3部分 C#應用程式開發
19.1 開發Windows窗體應用程式 415
19.1.1 Windows窗體應用程式概述 415
19.1.2 創建Windows窗體應用程式的一般步驟 417
19.1.3 窗體和控制項概述 420
19.2 常用的Windows窗體控制項 420
19.2.1 標籤、文本框和命令按鈕 420
19.2.2 單選按鈕、複選框和分組 422
19.2.3 列表選擇控制項 424
19.2.4 圖形存儲和顯示控制項 427
19.2.5 Timer控制項 430
19.3 通用對話框 431
19.3.1 OpenFileDialog對話框 432
19.3.2 SaveFileDialog對話框 432
19.3.3 通用對話框套用舉例 433
19.3.4 FontDialog對話框 435
19.4 選單和工具列 435
19.4.2 ContextMenuStrip控制項 435
19.4.3 ToolStrip控制項 436
19.4.4 選單和工具列套用舉例 436
19.5 多重窗體 438
19.5.1 添加新窗體 438
19.5.2 調用其他窗體 438
19.5.3 多重窗體套用舉例 439
19.6 多文檔界面 440
19.6.1 創建MDI父窗體 440
19.6.2 創建MDI子窗體 440
19.6.3 處理MDI子窗體 441
19.7 圖形繪製 441
19.7.1 GDI+圖形繪製概述 441
19.7.2 繪製字元串 443
19.7.3 繪製圖形 443
第20章 WPF應用程式 448
20.1 WPF應用程式概述 448
20.1.1 WPF簡介 448
20.1.2 WPF應用程式的構成 448
20.2 創建WPF應用程式 452
20.2.1 創建簡單的WPF應用程式 452
20.2.2 WPF應用程式布局 453
20.2.3 WPF應用程式常用控制項 456
20.3 WPF應用程式與圖形和多媒體 460
20.3.1 圖形和多媒體概述 460
20.3.2 圖形、圖像、畫筆和點陣圖效果 461
20.3.3 多媒體 469
20.3.4 動畫 472
第21章 ASP.NET Web應用程式 475
21.1 開發ASP.NET Web應用程式 475
21.1.1 ASP.NET Web應用程式概述 475
21.1.2 創建ASP.NET Web應用程式 476
21.2 ASP.NET Web頁面 477
21.2.1 ASP.NET Web頁面概述 477
21.2.2 創建ASP.NET頁面 478
21.3 ASP.NET Web伺服器控制項 480
21.3.1 ASP.NET Web伺服器控制項概述 480
21.3.2 使用標準伺服器控制項創建Web頁面 481
21.4 驗證伺服器控制項 484
21.4.1 驗證伺服器控制項概述 484
21.4.2 使用驗證伺服器控制項創建Web頁面 484
21.5 數據伺服器控制項 487
21.5.1 數據伺服器控制項概述 487
21.5.2 使用數據伺服器控制項創建Web頁面 487
21.6 使用ADO.NET連線和運算元據庫 490
21.7 ASP.NET頁面會話狀態和頁面導航 491
21.7.1 ASP.NET Web應用程式上下文 491
21.7.2 ASP.NET Web應用程式事件 493
21.7.3 ASP.NET Web頁面導航 495
21.8 ASP.NET Web應用程式的布局和導航 496
21.8.1 ASP.NET Web母版頁 496
21.8.2 ASP.NET Web導航控制項 497
21.8.3 套用舉例:設計ASP.NET Web站點 498
21.9 ASP.NET主題和外觀 502
21.9.1 ASP.NET主題和外觀概述 502
21.9.2 定義主題 503
21.9.3 定義外觀 503
21.9.4 定義CSS樣式 503
21.9.5 在頁面中使用主題 505
21.9.6 套用舉例:使用ASP.NET主題和外觀自定義Web站點 506
第22章 綜合套用案例 509
22.1 多視窗文本編輯器系統設計 509
22.1.1 系統基本功能 509
22.1.2 功能模組設計 509
22.1.3 系統的實現 509
22.2 ASP.NET網上書店系統的設計 514
22.2.1 系統總體設計 514
22.2.2 資料庫設計 514
22.2.3 功能模組設計 515
22.2.4 系統的實現 516
附錄A .NET Framework和.NET Core概述 528
A1 .NET Framework的概念 528
A1.1 公共語言運行時 528
A1.2 .NET Framework類庫 528
A2 .NET Framework的功能特點 529
A3 .NET Framework環境 529
A4 .NET Framework的主要版本 530
A5 .NET Core 530
A5.1 .NET Core概述 530
A5.2 .NET Core組成 530
A5.3 .NET Core與.NET Framework比較 530
A5.4 .NET Core與Mono比較 531
附錄B C#編譯器和預處理器指令 532
B1 C#編譯器概述 532
B2 C#編譯器選項 532
B3 C#預處理器指令 534
附錄C Visual Studio快速入門 537
C1 集成開發環境(IDE)界面 537
C2 創建解決方案和項目 537
C3 設計器/編輯器 539
C4 生成和調試工具 540
C5 安裝和部署工具 541
C6 幫助系統 541
附錄D C#關鍵字和上下文關鍵字 542
D1 關鍵字 542
D2 上下文關鍵字 544
附錄E 格式化字元串 546
E1 複合格式設定 546
E2 複合格式字元串 546
E3 數字格式字元串 547
E4 標準日期和時間格式字元串 549
附錄F XML文檔注釋 553
附錄G ASCII碼錶 557
附錄H 程式集、應用程式域和反射 558
H1 程式集 558
H1.1 程式集概述 558
H1.2 創建程式集 558
H2 應用程式域 558
H2.1 應用程式域概述 558
H2.2 創建應用程式域 559
H3 反射 559
H3.1 反射概述 559
H3.2 查看類型信息 560
H3.3 動態載入和使用類型 561
參考文獻 562

相關詞條

熱門詞條

聯絡我們