C#從0到1:語法詳解與案例實踐

洪錦魁

  • 出版商: 清華大學
  • 出版日期: 2024-09-01
  • 定價: $1,008
  • 售價: 8.5$857
  • 語言: 簡體中文
  • ISBN: 7302671494
  • ISBN-13: 9787302671497
  • 相關分類: C#
  • 下單後立即進貨 (約4週~6週)

  • C#從0到1:語法詳解與案例實踐-preview-1
  • C#從0到1:語法詳解與案例實踐-preview-2
  • C#從0到1:語法詳解與案例實踐-preview-3
C#從0到1:語法詳解與案例實踐-preview-1

相關主題

商品描述

《C#從0到1:語法詳解與案例實踐》從初學者角度,通過通俗易懂的語言、貼近生活的實例,詳細介紹了使用C#進行程序開發需要掌握的知識和技術。全書38章,內容包括C#簡介、數據類型與變量、表達式與運算符、輸入與輸出、程序的流程控制、窗口設計、控件設計、圖像設計等。書中所有知識都結合具體實例進行分析,案例的程序代碼講解詳細,可以使讀者輕松領會 C# 程序開發的精髓,快速提高開發技能。

目錄大綱

目 錄

第1章 C#和Visual Studio1

1-1 認識C#2

1-1-1 C#的起源2

1-1-2 認識C#的開發者2

1-2 認識.NET3

1-2-1 .NET是什麽3

1-2-2 .NET的版本演變3

1-2-3 認識.NET Framework、.NET 

Core、.NET3

1-3 C#從編譯到執行的概念4

1-3-1 傳統程序從編譯到執行4

1-3-2 認識微軟.NET的跨平臺

概念4

1-4 認識/下載/安裝Visual Studio5

1-4-1 認識Visual Studio的版本5

1-4-2 下載Visual Studio6

1-4-3 安裝Visual Studio6

1-4-4 安裝Visual Studio其他

模塊6

1-4-5 卸載Visual Studio6

1-5 方案、項目和程序6

1-5-1 認識方案、項目和程序6

1-5-2 方案、項目和C#程序的默

認擴展名7

1-5-3 本書所設計的方案重點7

1-6 控制台的應用程序類7

1-7 本書的項目內容8

1-8 創建、關閉與打開方案實例8

1-8-1 創建控制台應用程序 .NET 

Framework 4.8方案8

1-8-2 關閉方案9

1-8-3 打開方案10

1-9 創建 .NET 7.0的方案10

1-9-1 創建控制台應用程序 .NET 7.0

的方案10

1-9-2 創建Windows Forms方案11

1-10 查看方案文件夾12

1-10-1 查看 .NET Framework 4.8

的ch1_1方案 12

1-10-2 查看創建控制台應用程序

    .NET 7.0的ch1_2方案13

1-10-3 查看Windows Forms的

ch1_3方案13

1-10-4 方案和項目有相同的名稱13

1-10-5 方案和項目在相同的文件夾

15

第2章 設計第一個C#程序17

2-1 解析 .NET Framework的C#語言

結構18

2-1-1 先前準備工作18

2-1-2 引用命名空間的類18

2-1-3 C#的基本結構19

2-1-4 類class19

2-1-5 Main( )函數19

2-1-6 方案ch2_2 - C#程序的體驗20

2-1-7 執行方案20

2-2 解析 .NET 7.0的C#語言結構20

2-2-1 準備方案ch2_321

2-2-2 網址參考與批註符號21

2-2-3 隱式using引用命名空間22

2-2-4 Main( )不見了23

2-2-5 轉換成Program.Main樣式

程序23

2-2-6 執行C# 的方案23

2-3 不使用頂級語句24

2-4 認識C# 的可執行文件24

第3章 數據類型與變量26

3-1 變量名的使用27

3-1-1 認識C#語言的變量27

3-1-2 認識不需事先聲明變量的

程序語言28

3-2 變量的聲明28

3-2-1 基本概念28

3-2-2 var變量的聲明29

3-2-3 GetType( )29

3-3 基本數據類型30

3-4 整數數據類型30

3-4-1 整數基本概念30

3-4-2 整數數據類型的屬性32

3-4-3 不同進制的整數32

3-4-4 千位分隔符33

3-4-5 整數的後綴字符33

3-4-6 sizeof( )33

3-5 浮點數數據類型34

3-5-1 浮點數基本概念34

3-5-2 浮點數數據類型的屬性35

3-5-3 浮點數的後綴字符35

3-5-4 科學記數法35

3-5-5 千位分隔符36

3-5-6 sizeof( )36

3-5-7 認識float和double的NaN和無限大36

3-6 字符數據類型37

3-6-1 使用sizeof( )函數列出字符長度37

3-6-2 設定字符的常值37

3-6-3 輸出一般符號38

3-6-4 轉義字符38

3-7 字符串數據類型39

3-7-1 字符串內含有轉義字符40

3-7-2 @字符與字符串40

3-7-3 撰寫多行字符串40

3-8 布爾值數據類型41

3-9 object數據類型41

3-9-1 object數據類型41

3-9-2 Value Type數據類型41

3-9-3 裝箱42

3-9-4 拆箱42

3-9-5 拆箱/裝箱與泛型42

3-10 dynamic數據類型43

3-11 變量的默認值default43

3-12 數據類型的轉換44

3-12-1 隱式轉換44

3-12-2 顯式轉換45

3-13 const常量46

3-14  與null46

3-15 值數據類型與引用數據類型47

3-16 匿名數據類型47

第4章 表達式與運算符49

4-1 程序設計的專有名詞50

4-1-1 程序代碼50

4-1-2 表達式50

4-1-3 運算符與操作數50

4-1-4 操作數也可以是一個表達式50

4-1-5 指定運算符51

4-1-6 C# 語言可以一次指定多個運算符為相同的值51

4-1-7 單元運算符51

4-1-8 二元運算符51

4-1-9 三元運算符52

4-2 算術運算52

4-2-1 基礎算術運算符號52

4-2-2 負號( - )運算53

4-2-3 運算符優先級54

4-2-4 程序代碼指令太長時的分行處理55

4-3 不同數據類型混合應用56

4-3-1 整數和字符混合使用56

4-3-2 開學了學生買球鞋56

4-4 遞增和遞減表達式56

4-5 復合表達式57

4-5-1 復合表達式基礎57

4-5-2 新版C# 空合並賦值運算符58

4-6 專題59

4-6-1 圓周率59

4-6-2 計算圓柱體積60

第5章 位運算62

5-1 Convert.ToString( )方法63

5-2 位運算基礎概念63

5-2-1 基礎位運算63

5-2-2 復合式位運算64

5-3 & 運算符64

5-4 | 運算符65

5-5 ^ 運算符66

5-6 ~ 運算符66

5-7 << 運算符67

5-8 >> 運算符67

5-9 運算符優先級68

第6章 輸入與輸出70

6-1 Console.WriteLine( )71

6-1-1 輸出字符串71

6-1-2 參數是字符串和對象71

6-1-3 字符串插補71

6-1-4 格式化數字的輸出72

6-1-5 格式化日期與時間的輸出72

6-1-6 格式化預留輸出空間與對齊方式73

6-1-7 格式化貨幣符號輸出74

6-1-8 控制台輸出顏色控制74

6-1-9 設計控制台窗口大小75

6-1-10 取得並設定光標的位置75

6-2 Console.Write( )76

6-3 Console.Read( )/Console.ReadKey( )/

 Console.ReadLine( )76

6-3-1 Console.Read( )76

6-3-2 Console.ReadKey( )77

6-3-3 Console.ReadLine( )77

6-4 其他常用的屏幕方法77

6-5 數據的轉換78

6-5-1 讀取數據時使用Parse( )轉換

78

6-5-2 讀取數據時使用TryParse( )轉換79

6-5-3 Convert類的方法79

6-6 日期格式的轉換80

6-7 Math類81

6-7-1 Math類的數學常數81

6-7-2 Math類的三角函數81

6-7-3 Math類常用的方法82

6-8 專題83

6-8-1 銀行存款復利的計算83

6-8-2 價值衰減的計算83

6-8-3 計算地球到月球所需時間83

6-8-4 計算坐標軸兩個點之間的

距離84

6-8-5 房屋貸款問題實操84

6-8-6 使用反餘弦函數計算圓周率85

6-8-7 雞兔同籠 — 解聯立方程式85

第7章 程序的流程控制89

7-1 關系運算符90

7-2 邏輯運算符90

7-3 完整C#運算符優先級表91

7-4 if語句92

7-5 if … else語句93

7-6 if … else if … else語句94

7-7 與流程控制有關的特殊表達式95

7-7-1 e1   e2 : e3 特殊表達式95

7-7-2    特殊表達式96

7-8 switch 語句96

7-9 goto 語句98

7-10 專題99

7-10-1 BMI指數計算99

7-10-2 閏年計算99

7-10-3 判斷成績並輸出適當的字符串100

7-10-4 十二生肖系統100

7-10-5 火箭升空101

7-10-6 簡易的人工智能程序 — 職場興趣方向測驗101

7-10-7 輸出每個月有幾天102

7-10-8 is和is not關鍵詞102

第8章 程序的循環設計106

8-1 for循環107

8-1-1 單層for循環107

8-1-2 for語句應用到無限循環中109

8-1-3 雙層或多層for循環110

8-1-4 for循環指標遞減設計111

8-2 while循環112

8-2-1 單層while循環112

8-2-2 while語句應用到無限循環113

8-2-3 雙層或多層while循環113

8-3 do … while循環114

8-3-1 單層do … while循環114

8-3-2 do … while語句的無限循環116

8-3-3 雙層或多層do … while循環

116

8-4 循環的選擇116

8-5 break語句117

8-6 continue語句118

8-7 隨機數Random類118

8-7-1 創建隨機數對象119

8-7-2 隨機數方法Next( )119

8-7-3 隨機數種子119

8-8 休息方法120

8-9 專題120

8-9-1 計算平均成績和不及格

人數120

8-9-2 猜數字游戲121

8-9-3 認識歐幾里得算法121

8-9-4 計算圓周率122

8-9-5 雞兔同籠 — 使用循環

計算123

8-9-6 國王的麥粒123

8-9-7 離開無限循環並結束程序的Ctrl + C鍵124

8-9-8 銀行賬戶凍結124

8-9-9 自由落體125

8-9-10 羅馬數字125

8-9-11 定時器設計125

第9章 數組130

9-1 一維數組131

9-1-1 基礎概念131

9-1-2 數組的聲明131

9-1-3 數組聲明與初始值設定132

9-1-4 讀取一維數組的輸入133

9-1-5 一維數組的應用實例133

9-1-6 一維數組的方法134

9-1-7 object數組134

9-2 二維數組135

9-2-1 基礎概念135

9-2-2 二維數組的初始值設定135

9-2-3 二維數組的應用實例136

9-2-4 二維數組與匿名數組136

9-2-5 二維數組的應用解說137

9-3 更高維的數組138

9-3-1 基礎概念138

9-3-2 三維或更高維數組的應用

解說138

9-4 匿名數組138

9-5 foreach遍歷數組139

9-6 Array類140

9-6-1 Array類的屬性140

9-6-2 Array類的方法140

9-6-3 清除數組內容Clear( )141

9-6-4 Copy( )方法141

9-6-5 GetLength( )/GetLowerBound( )/

GetUpperBound( )141

9-6-6 SetValue( )/GetValue( )142

9-6-7 IndexOf( )142

9-6-8 Reverse( )/Sort( )142

9-6-9 BinarySearch( )143

9-7 不規則數組143

9-7-1 基礎概念143

9-7-2 聲明不規則數組144

9-7-3 聲明不規則數組並設定

初始值144

9-7-4 不規則數組與匿名數組145

9-8 排序原理與實操145

9-8-1 排序的概念與應用146

9-8-2 排序實操147

9-9 專題148

9-9-1 斐波那契數列148

9-9-2 二維數組乘法149

9-9-3 4 × 4魔術方塊150

9-9-4 基礎統計151

9-9-5 不規則數組的專題152

第10章 字符和字符串的處理158

10-1 字符Char類159

10-2 字符Char類常用的方法159

10-2-1 與字符有關的方法159

10-2-2 判斷數字和字母的方法160

10-2-3 判斷大小寫字母的方法160

10-2-4 判斷符號的方法160

10-2-5 判斷是不是標點符號的方法

161

10-3 字符數組與字符串161

10-4 字符串String類162

10-4-1 基礎概念162

10-4-2 字符串的屬性Length162

10-4-3 定義null或空字符串162

10-4-4 const關鍵詞應用到字符串163

10-4-5 字符串連接“+”符號163

10-4-6 字符串引用163

10-5 字符串String類常用的方法164

10-5-1 與字符串有關常用的方法164

10-5-2 更改字符串字母大小寫165

10-5-3 首字母大寫的轉換165

10-5-4 字符串結合Concat( )165

10-5-5 字符串比較166

10-5-6 字符串截取Substring( )167

10-5-7 回傳字符串出現的索引位置

167

10-5-8 回傳是否包含特定字符串Contains( )167

10-5-9 字符串替換Replace( )168

10-5-10 字符串分割Split( )168

10-5-11 刪除字符串前後的空格符

  Trim( )168

10-5-12 移除字符串指定內容

  Remove( )169

10-5-13 字符串是否由特定內容

  開始或結尾169

10-5-14 格式化字符串Format( )169

10-5-15 插入字符串Insert( )169

10-5-16 填充字符170

10-5-17 IsNullOrEmpty( )和IsNull

  OrWhiteSpace( )170

10-6 StringBuilder類171

10-6-1 創建StringBuilder字符串變量171

10-6-2 StringBuilder字符串變量的屬性172

10-7 StringBuilder類常用的方法172

10-7-1 與字符串有關常用的方法172

10-7-2 將StringBuilder字符串轉為String字符串ToString( )172

10-7-3 清除字符串Clear( )173

10-7-4 將指定內容加到對象末端Append( )173

10-7-5 將指定內容插入對象Insert( )

173

10-7-6 內容替換Replace( )174

10-8 專題174

10-8-1 判斷是不是輸入英文字母174

10-8-2 模擬輸入賬號和密碼175

10-8-3 創建字符串數組然後輸出鍵值175

10-8-4 計算句子各類字符數175

10-8-5 字符串比較與object175

第11章 集合178

11-1 認識.NET的集合179

11-2 System.Collections命名空間179

11-3 動態數組ArrayList179

11-3-1 創建ArrayList對象179

11-3-2 ArrayList的常用屬性180

11-3-3 ArrayList的常用方法180

11-3-4 初始化ArrayList對象元素內容180

11-3-5 遍歷ArrayList對象181

11-3-6 增加元素Add( )和AddRange( )

181

11-3-7 插入元素Insert( )182

11-3-8 是否包含特定元素Contains( )

182

11-3-9 刪除元素Clear( )/Remove( )/

RemoveAt( )/RemoveRange( )

182

11-3-10 回傳元素出現的位置Index

     Of( )/LastIndexOf( )183

11-3-11 元素重新排列Sort( )/

    Reverse( )184

11-4 哈希表184

11-4-1 創建哈希表對象184

11-4-2 哈希表的常用屬性184

11-4-3 哈希表的常用方法184

11-4-4 增加元素Add( )185

11-4-5 初始化哈希表185

11-4-6 遍歷哈希表185

11-4-7 遍歷鍵/遍歷值186

11-4-8 查詢鍵/值Contains( )/Contains

Key( )/ContainsValue( )186

11-4-9 清除哈希表的元素Clear( )/Remove( )187

11-5 專題187

11-5-1 設計星座密碼187

11-5-2 哈希表依照鍵排序188

第12章 函數的應用190

12-1 函數的體驗191

12-1-1 基礎概念191

12-1-2 轉換成Program.Main樣式程序192

12-2 函數的主體192

12-2-1 函數聲明192

12-2-2 函數中傳遞參數的設計192

12-2-3 函數中不同類型的參數設計

193

12-3 函數的回傳值return194

12-3-1 整數回傳值的應用194

12-3-2 浮點數回傳值的應用194

12-3-3 字符回傳值的應用195

12-3-4 return讓程序提早結束195

12-4 一個程序有多個函數的應用195

12-4-1 簡單的調用195

12-4-2 函數間的調用195

12-4-3 函數是另一個函數的參數196

12-5 遞歸函數的調用197

12-5-1 從掉入無限遞歸說起197

12-5-2 非遞歸設計階乘數函數198

12-5-3 從一般函數進化到遞歸

函數199

12-5-4 遞歸後記201

12-6 數組數據的傳遞201

12-6-1 傳遞數據的基礎概念201

12-6-2 數組的傳遞201

12-6-3 函數調用 — 數據交換使用ref參數202

12-6-4 函數調用 — 回傳數據用關鍵詞out203

12-6-5 函數調用 — 只讀關鍵詞in

203

12-6-6 函數調用 — 可變動數量參數params204

12-6-7 傳遞二維數組數據204

12-6-8 匿名數組205

12-7 命令行的輸入206

12-7-1 Main( )方法206

12-7-2 頂級語句方法207

12-8 全局變量與局部變量207

12-9 Expression-Bodied Method208

12-10 dynamic函數與參數208

12-11 專題209

12-11-1 設計質數測試函數209

12-11-2 抽獎程序設計209

12-11-3 使用遞歸方式設計斐波那

    契數列210

12-11-4 設計歐幾里得算法函數

    210

第13章 C# 結構數據struct215

13-1 結構數據類型216

13-1-1 基本概念216

13-1-2 存取修飾詞217

13-2 聲明結構變量217

13-2-1 聲明結構變量方法217

13-2-2 使用結構成員217

13-3 創建結構數據217

13-3-1 讀取數據218

13-3-2 初始化結構數據218

13-4 將結構對象的內容設置給另一個

    結構對象218

13-5 嵌套的結構219

13-6 C# 結構struct的特色220

13-7 new創建結構對象221

13-8 結構數據與數組221

13-9 struct的建構方法222

13-10 數據封裝 — 結構的set

    和get222

13-11 readonly字段223

13-12 with關鍵詞224

13-13 專題224

13-13-1 找出最高分學生的姓名

    和分數224

13-13-2 平面坐標系統225

第14章 列舉enum227

14-1 定義列舉enum的數據類型聲明

    變量228

14-2 定義列舉enum元素的整數值229

14-2-1 定義enum從元素1開始編號229

14-2-2 定義列舉enum元素數值不連續230

14-2-3 不規則定義列舉enum

元素值231

14-3 列舉的轉換231

14-4 專題231

14-4-1 enum的使用目的231

14-4-2 百貨公司折扣232

第15章 日期和時間235

15-1 DateTime的建構方法與屬性236

15-1-1 創建DateTime對象236

15-1-2 取得DateTime對象屬性236

15-1-3 基礎屬性的認識237

15-1-4 TimeOfDay/DayOfWeek/DayOfYear237

15-1-5 Now/UtcNow237

15-1-6 刻度數Ticks238

15-2 ToString( )方法與輸出日期與時間

    格式238

15-3 DateTime的方法239

15-3-1 日期加法相關函數的應用240

15-3-2 日期比較相關函數的應用240

15-3-3 月份的天數DaysInMonth( )

241

15-3-4 是否閏年IsLeapYear( )241

15-3-5 長/短日期與時間格式和字

符串241

15-3-6 解析時間與日期字符串242

15-4 文化特性CultureInfo類243

15-4-1 取得目前操作系統的文化名稱243

15-4-2 日期與時間格式243

15-5 TimeSpan建構方法與屬性244

15-5-1 TimeSpan建構方法244

15-5-2 TimeSpan的屬性244

15-6 DateTime和TimeSpan的混合應用

     245

15-7 TimeSpan類常用的方法246

15-7-1 時間間隔加法Add( )246

15-7-2 時間間隔減法Subtract( )247

15-7-3 解析字符串為時間間隔Parse( )

和TryParse( )247

15-8 專題248

15-8-1 var與運算符應用在Date

Time和TimeSpan類中248

15-8-2 設計一個休息秒數函數248

15-8-3 設計一個時鐘249

第16章 類與對象251

16-1 認識對象與類252

16-2 定義類與對象253

16-2-1 定義類253

16-2-2 聲明並創建類對象255

16-3 類的基本實例255

16-3-1 創建類的字段255

16-3-2 存取類的成員255

16-3-3 不使用頂級語句創建含類的方案256

16-3-4 命名空間、頂級語句與插入類257

16-4 值型與引用型258

16-5 類的方法260

16-6 一個類含多個對象的應用260

16-6-1 一個類含多個對象的應用260

16-6-2 創建類的對象數組261

16-7 再談方法261

16-7-1 基本參數的傳送261

16-7-2 認識形參與實參262

16-7-3 方法的回傳值263

16-8 變量的有效範圍263

16-8-1 for循環的索引變量263

16-8-2 局部變量264

16-8-3 類內成員變量與方法變量

  有相同的名稱264

16-9 部分類265

16-10 專題266

16-10-1 計算面積266

16-10-2 創建並輸出員工數據266

16-10-3 Expression-Bodied Method

  當作類的方法266

16-10-4 匿名類267

第17章 對象的建構、屬性與封裝

    269

17-1 建構方法270

17-1-1 默認的建構方法270

17-1-2 自建建構方法271

17-1-3 再談this關鍵詞271

17-1-4 析構方法272

17-2 重載273

17-2-1 從Console.WriteLine( )看重載定義273

17-2-2 把重載應用到建構方法274

17-2-3 把重載應用在一般方法中275

17-2-4 認識方法簽名276

17-3 類成員的訪問權限 — 封裝276

17-3-1 基礎概念276

17-3-2 類成員的訪問控制277

17-3-3 設計具有封裝效果的程序278

17-4 屬性成員278

17-4-1 基本概念278

17-4-2 表達式主體方法應用到屬性中279

17-4-3 自動實操屬性279

17-4-4 自動屬性初始值設定279

17-4-5 屬性初始化280

17-4-6 為屬性增加邏輯判斷280

17-5 類的只讀和常數字段280

17-5-1 const應用在類字段中281

17-5-2 只讀281

17-6 靜態關鍵詞282

17-6-1 類中的靜態字段282

17-6-2 類中的靜態方法283

17-6-3 靜態類283

17-6-4 靜態建構方法284

17-6-5 擴展方法284

17-7 索引器285

17-8 專題286

17-8-1 建構方法與數學類的應用286

17-8-2 銀行存款與提款286

17-8-3 將static用於NBA球員人數統計287

17-8-4 星期信息轉成索引287

第18章 繼承與多態289

18-1 繼承290

18-1-1 從3個簡單的C# 程序談起290

18-1-2 繼承的語法291

18-1-3 觀察父類建構方法的調用292

18-1-4 父類屬性為public時子類

    初始化父類屬性293

18-1-5 父類屬性為private時調用父類建構方法 — 關鍵詞this293

18-1-6 存取修飾符protected295

18-1-7 將字段改為屬性概念296

18-1-8 分層繼承296

18-1-9 多層次繼承297

18-1-10 繼承類型總結與陷阱298

18-1-11 父類與子類有相同的成員

    變量名稱299

18-2 IS-A和HAS-A關系300

18-2-1 IS-A關系與is300

18-2-2 HAS-A關系 — 聚合301

18-2-3 HAS-A關系 — 組合302

18-3 對C# 程序代碼太長的處理303

18-4 多態304

18-4-1 編譯時多態305

18-4-2 重寫305

18-4-3 new關鍵詞306

18-4-4 重寫使用virtual和override

307

18-4-5 運行時多態307

18-5 靜態綁定與動態綁定308

18-6 嵌套類308

18-7 sealed類309

18-7-1 把sealed應用在類中309

18-7-2 把sealed應用在方法中310

18-8 專題310

18-8-1 薪資計算310

18-8-2 面積計算310

18-8-3 多態的應用311

18-8-4 重寫ToString( )311

第19章 抽象類314

19-1 使用抽象類的場合315

19-2 抽象類基本概念316

19-3 抽象方法的基本概念317

19-4 抽象類與抽象方法概念整理318

19-5 抽象類的建構方法319

19-6 運行時多態應用到抽象類中319

19-7 專題320

19-7-1 數學計算320

19-7-2 正方形面積計算320

19-7-3 多態應用 — 數組概念擴充計算不同外形面積程序321

第20章 接口323

20-1 認識接口324

20-1-1 基本概念324

20-1-2 使用upcasting實現接口325

20-1-3 為什麽使用接口325

20-2 接口實例326

20-2-1 兩個類實現一個接口326

20-2-2 多層次繼承與實現326

20-2-3 接口方法內含參數327

20-3 顯式實現327

20-4 接口屬性實現328

20-5 多重繼承與實現328

20-6 虛擬接口方法330

20-7 專題331

20-7-1 接口有相同的抽象方法331

20-7-2 事務歷史記錄331

20-7-3 將虛擬接口方法應用在交通工具上331

第21章 認識泛型334

21-1 從重載定義說起335

21-1-1 交換函數Swap( )335

21-1-2 object數據類型335

21-2 認識泛型336

21-2-1 基礎應用336

21-2-2 泛型函數—參數是數組337

21-3 泛型類337

21-4 泛型類—字段與屬性338

21-4-1 定義泛型類—內含一個字段338

21-4-2 定義泛型類—內含一個屬性339

21-4-3 定義泛型類—內含多種數據類型339

21-4-4 定義泛型類—內含數組字段340

21-5 泛型類—方法340

21-5-1 泛型方法的參數是泛型340

21-5-2 泛型方法內有一般參數341

21-5-3 泛型方法的數據類型是泛型

341

21-6 含有泛型方法的一般類342

21-7 泛型方法重載342

21-7-1 一般類中的泛型方法重載342

21-7-2 泛型類中的泛型方法重載343

21-8 專題343

21-8-1 創建數組與輸出數組343

21-8-2 模擬棧操作343

第22章 泛型集合345

22-1 System.Collections.Generic346

22-2 List列表346

22-2-1 創建List對象346

22-2-2 List的屬性347

22-2-3 List方法347

22-3 Stack棧348

22-3-1 創建Stack對象348

22-3-2 Stack的屬性349

22-3-3 Stack方法349

22-4 Queue隊列350

22-4-1 創建Queue對象350

22-4-2 Queue的屬性350

22-4-3 Queue方法351

22-5 LinkedList鏈表351

22-5-1 創建LinkedList對象351

22-5-2 LinkedList的屬性352

22-5-3 LinkedList方法352

22-6 SortedSet集合353

22-6-1 創建SortedSet對象353

22-6-2 SortedSet的屬性353

22-6-3 SortedSet方法354

22-7 Dictionary集合354

22-7-1 創建Dictionary對象354

22-7-2 Dictionary的屬性355

22-7-3 Dictionary方法356

22-8 SortedList集合357

22-8-1 創建SortedList對象357

22-8-2 SortedList的屬性358

22-8-3 SortedList方法359

22-9 SortedDictionary集合359

第23章 元組(Tuple)362

23-1 元組的功能363

23-2 元組聲明363

23-2-1 早期C# 4.0的Tuple363

23-2-2 C# 7.0至今的Tuple363

23-3 存取元組元素內容363

23-3-1 Item屬性363

23-3-2 Rest屬性364

23-4 創建嵌套元組365

23-5 設定元素名稱365

23-6 元組賦值設定366

23-7 將= =和!=符號用於元組比較366

23-8 把元組當作方法的參數進行傳遞

           366

23-9 把元組當作方法的回傳值367

23-10 專題367

23-10-1 到學校的距離367

23-10-2 數據交換程序設計367

23-10-3 計算最大值與最小值368

第24章 程序調試與異常處理370

24-1 程序異常371

24-1-1 一個除數為0的錯誤371

24-1-2 撰寫異常處理程序try-catch

371

24-1-3 try-catch-finally372

24-2 C# 的異常信息373

24-3 設計多組異常處理程序374

24-3-1 常見的異常對象374

24-3-2 設計捕捉多個異常的程序374

24-4 捕捉所有異常375

24-4-1 再談try-catch375

24-4-2 Exception376

24-5 拋出異常376

24-6 創建自己的異常名稱377

24-7 程序調試的典故377

24-8 專題378

24-8-1 函數的參數是null時將產生異常378

24-8-2 銀行密碼長度測試379

24-8-3 溫度異常379

第25章 正則表達式381

25-1 正則表達式基礎382

25-1-1 認識Regex.IsMatch( )方法382

25-1-2 正則表達式基礎382

25-1-3 使用大括號{ }處理重復出現的字符串383

25-1-4 處理市區電話字符串的方式

383

25-1-5 用括號分組384

25-1-6 用小括號處理區域號碼384

25-1-7 使用管道 |384

25-1-8 使用 號做搜尋385

25-1-9 使用*號做搜尋385

25-1-10 使用+號做搜尋385

25-1-11 大小寫忽略RegexOptions.

    IgnoreCase385

25-1-12 正則表達式量次的表386

25-2 正則表達式的特殊字符386

25-2-1 特殊字符表387

25-2-2 單一字符使用通配符中的“.”

388

25-2-3 字符分類388

25-2-4 字符分類的^字符388

25-2-5 所有字符使用通配符中的“.*”

388

25-2-6 特殊字符$389

25-2-7 特殊字符^389

25-3 IsMatch( )方法的萬用程序與功能

    擴充389

25-4 找出第一個匹配搜尋規則的內容

    Regex.Match( )390

25-4-1 搜尋第一次出現的內容390

25-4-2 Match對象的NextMatch( )方法390

25-5 找出所有匹配搜尋規則的內容

  Regex. Matches( )391

25-6 字符串修改Regex.Replace( )391

25-7 正則表達式的分割Regex.Split( )

  392

25-8 專題393

25-8-1 搜尋A開頭的國際品牌393

25-8-2 電話號碼的隱藏393

25-8-3 刪除英文稱呼393

25-8-4 測試網址是否正確394

25-8-5 信息加密394

第26章 委托396

26-1 認識委托397

26-2 委托操作397

26-2-1 聲明委托397

26-2-2 設計目標方法397

26-2-3 創建委托對象實例並設定目標方法—常見用法398

26-2-4 創建委托對象實例並設定目標方法—簡化用法398

26-2-5 調用委托398

26-2-6 簡單的委托實例398

26-2-7 調整委托指向399

26-3 把委托當作方法的參數400

26-4 多播委托400

26-5 泛型委托401

26-6 匿名方法401

26-6-1 基礎匿名方法401

26-6-2 匿名方法引用外部的變量402

26-6-3 把匿名方法當作參數傳送402

26-7 Func委托402

26-8 Action委托403

26-9 Predicate委托403

第27章 Lambda表達式406

27-1 Lambda表達式定義407

27-2 Lambda基礎語法407

27-2-1 沒有輸入參數的Lambda407

27-2-2 有1個輸入參數的Lambda407

27-2-3 有多個參數的Lambda407

27-3 Lambda基礎實例407

27-3-1 表達式的Lambda407

27-3-2 語句的Lambda408

27-4 Lambda就是委托指定引用的匿名

  方法408

27-5 將Lambda表達式轉換成delegate

  委托類型409

27-5-1 將Lambda轉成Func委托409

27-5-2 將Lambda轉成Action委托

410

27-6 外在變量對Lambda表達式的影響

  410

27-7 專題411

27-7-1 創建產生隨機數的Lambda表達式411

27-7-2 創建計算圓面積的Lambda表達式411

27-7-3 基礎數學運算的Lambda表達式411

27-7-4 創建賬號長度測試411

27-7-5 Lambda應用在篩選數據中412

第28章 事件414

28-1 認識事件415

28-2 第一個C# 事件與處理程序415

28-2-1 聲明一個事件415

28-2-2 設計事件觸發位置415

28-2-3 註冊事件416

28-2-4 第1個事件實例416

28-3 C# 內置的事件處理程序委托417

28-4 傳遞事件數據417

28-5 傳送自定義時間數據418

28-6 專題419

第29章 基礎Windows窗口設計420

29-1 創建新的項目421

29-2 認識Visual Studio窗口環境422

29-2-1 認識Visual Studio窗口422

29-2-2 切換程序設計區內容423

29-2-3 執行方案ch29_1423

29-3 查看ch29_1文件夾424

29-3-1 查看方案文件夾424

29-3-2 查看項目文件夾424

29-3-3 查看可執行文件的文件夾424

29-4 認識主要窗口區域425

29-4-1 從窗體設計模式到窗體程序代碼模式425

29-4-2 從窗體程序代碼設計模式切換回窗體設計模式425

29-4-3 主要窗口顯示更多程序內容425

29-4-4 關閉主要窗口的標簽內容426

29-5 工具箱426

29-5-1 顯示工具箱426

29-5-2 固定工具箱位置426

29-5-3 浮動工具箱427

29-6 新增或刪除窗體427

29-6-1 新增窗體427

29-6-2 刪除窗體428

29-7 窗體屬性428

29-7-1 窗體設計屬性429

29-7-2 窗體雜項Misc429

29-7-3 窗體外觀屬性429

29-7-4 窗體行為433

29-7-5 窗體佈局433

29-7-6 窗口樣式屬性435

29-8 窗體事件435

29-8-1 打開窗體事件的方法435

29-8-2 常見的窗體事件437

29-8-3 輸出對話框437

29-9 解析Windows Forms窗口項目程序437

29-9-1 解析Form1.cs和Form1.Designer.cs438

29-9-2 解析Program.cs439

29-10 在窗體內創建與佈局控件439

29-10-1 創建控件的方法439

29-10-2 使用方法1創建Button 控件實例439

29-10-3 使用方法2創建Label控件440

29-10-4 控件的大小調整440

29-10-5 控件位置的調整440

29-10-6 創建多個相同的控件440

29-10-7 刪除與撤消刪除控件441

29-10-8 對齊窗體中央441

29-10-9 調整水平間距441

29-10-10 調整垂直間距441

29-10-11 多個控件的對齊442

29-11 專題442

29-11-1 用程序設計屬性442

29-11-2 啟動窗口有對話框443

29-11-3 創建多個窗體443

第30章 基礎控件設計445

30-1 控件設定知識的復習446

30-2 Button功能按鈕446

30-2-1 Button常用屬性446

30-2-2 Button常用事件447

30-2-3 Button項目實例447

30-2-4 新增快捷鍵448

30-2-5 Name屬性449

30-2-6 認識事件處理程序的參數object sender449

30-2-7 執行系統應用程序450

30-3 Label標簽451

30-3-1 Label常用屬性451

30-3-2 Label常用事件451

30-3-3 Label項目實例451

30-4 TextBox文本框453

30-4-1 TextBox常用屬性453

30-4-2 TextBox 常用事件454

30-4-3 TextBox顯示文字的實例454

30-4-4 數值轉換的應用455

30-4-5 異常發生456

30-4-6 TextChanged事件實例457

30-4-7 選取文件實例458

30-5 MessageBox消息框458

30-6 RadioButton單選按鈕460

30-6-1 RadioButton常用屬性461

30-6-2 RadioButton 常用事件461

30-6-3 單選按鈕的基礎實例461

30-7 CheckBox復選框463

30-7-1 CheckBox常用屬性463

30-7-2 CheckBox 常用事件463

30-7-3 復選框的基礎實例463

30-8 容器—GroupBox分組框464

30-9 容器—Pane面板控制465

30-10 ListBox清單466

30-10-1 ListBox常用屬性466

30-10-2 使用字符串集合編輯器創建列表466

30-10-3 ListBox常用的方法467

30-10-4 使用程序選取或取消選取項目468

30-10-5 ListBox 常用事件469

30-10-6 綜合應用470

30-11 ComboBox下拉組合框471

30-11-1 ComboBox常用屬性471

30-11-2 ComboBox事件472

30-12 CheckedListBox復選框清單474

30-12-1 CheckedListBox常用屬性474

30-12-2 CheckedListBox常用的

    方法474

30-12-3 CheckedListBox事件474

30-13 鼠標事件476

30-13-1 體會鼠標事件實例477

30-13-2 事件的EventArgs e參數477

30-14 鍵盤事件478

30-14-1 KeyDown和KeyUp事件478

30-14-2 KeyPress事件478

第31章 靜態圖像邁向動態圖像設計482

31-1 PictureBox圖片框483

31-1-1 PictureBox常用屬性483

31-1-2 程序設計圖片框位置483

31-1-3 程序設計圖像大小484

31-1-4 加載與刪除圖像484

31-1-5 靜態到動態圖像實例484

31-2 把圖像應用在窗體背景中486

31-3 把圖像應用在Button中486

31-4 內含圖像的標簽487

31-5 ImageList圖像列表487

31-5-1 創建控件與圖像列表關聯487

31-5-2 創建圖像列表內容488

31-5-3 創建動態火柴人488

31-6 Timer定時器控件489

31-6-1 創建控件與圖像列表關聯489

31-6-2 啟動與結束計時功能490

31-6-3 定時器原理490

31-6-4 走馬燈的設計490

31-7 專題490

31-7-1 先前準備工作490

31-7-2 擺翅的蝴蝶491

31-7-3 移動的蝴蝶 — 翅膀沒有擺動491

31-7-4 飛舞的蝴蝶492

第32章 常用的控件494

32-1 ToolTip提示說明495

32-1-1 ToolTip常用屬性495

32-1-2 ToolTip常用方法495

32-2 DateTimePicker日期時間選擇器496

32-2-1 DateTimePicker最重要的屬性Value496

32-2-2 DateTimePicker格式化的屬性Format497

32-2-3 幾個其他常用的屬性498

32-2-4 常使用的事件498

32-2-5 定時器應用499

32-3 MonthCalendar月歷499

32-3-1 MonthCalendar的屬性 — 粗體設定日期499

32-3-2 MaxDate和MinDate屬性501

32-3-3 ShowToday和ShowTodayCircle屬性501

32-3-4 選取日期相關屬性501

32-3-5 日歷常用事件502

32-4 NumericUpDown控件503

32-4-1 NumericUpDown常用屬性503

32-4-2 NumericUpDown常用方法503

32-4-3 NumericUpDown常用事件503

32-4-4 定時器設計503

32-5 共享事件505

32-5-1 用程序代碼處理共享事件505

32-5-2 屬性窗口處理共享事件505

第33章 創建菜單和工具欄507

33-1 MenuStrip菜單508

33-1-1 請創建ch33_1.sln方案508

33-1-2 MenuStrip工具508

33-1-3 創建菜單508

33-1-4 認識菜單509

33-1-5 創建文件菜單509

33-1-6 創建文件同層級的項目509

33-1-7 創建文件的子層級項目509

33-1-8 插入項目分隔線510

33-1-9 插入、移動和刪除項目510

33-1-10 創建更深一層的菜單項511

33-1-11 查看菜單項的Name和Text屬性512

33-1-12 項集合編輯器513

33-1-13 菜單項的屬性514

33-1-14 菜單與事件516

33-2 ContextMenuStrip快捷菜單517

33-2-1 請創建ch33_3.sln方案517

33-2-2 ContextMenuStrip工具517

33-2-3 創建快捷菜單518

33-2-4 將控件與快捷菜單創建關聯518

33-2-5 快捷菜單的實例519

33-3 ToolStrip工具欄520

33-3-1 ToolStrip工具521

33-3-2 在工具欄內創建控件521

33-3-3 控件的屬性設定521

33-3-4 工具欄的屬性522

33-3-5 工具欄實例522

33-3-6 插入標準項523

33-4 StatusStrip狀態欄524

33-4-1 StatusStrip工具524

33-4-2 在狀態欄內創建控件524

33-4-3 控件的屬性設定525

第34章 常用對話框的應用527

34-1 FontDialog字體對話框528

34-1-1 FontDialog工具528

34-1-2 認識默認的FontDialog字體對話框528

34-1-3 激活字體對話框528

34-1-4 字體對話框的回傳值529

34-1-5 字體對話框的ShowColor屬性530

34-2 ColorDialog顏色對話框530

34-2-1 ColorDialog工具530

34-2-2 認識默認的ColorDialog顏色對話框531

34-2-3 激活顏色對話框531

34-2-4 顏色對話框的回傳值531

34-3 OpenFileDialog打開文件對話框532

34-3-1 OpenFileDialog工具533

34-3-2 打開文件對話框的屬性533

34-3-3 打開文件對話框實操533

34-4 SaveFileDialog保存文件對話框534

34-5 RichTextBox富文本框535

34-5-1 認識RTF文件格式535

34-5-2 RichTextBox常用屬性536

34-5-3 RichTextBox 常用方法537

34-5-4 讀取和保存文件537

34-5-5 SelectionChanged事件537

34-5-6 編輯圖文並茂的文件—插入圖片538

34-5-7 RichTextBox編輯程序的設計538

第35章 文件的輸入與輸出541

35-1 認識System.IO命名空間542

35-2 文件夾的操作543

35-2-1 Directory類543

35-2-2 DirectoryInfo類543

35-3 文件的操作544

35-3-1 File類544

35-3-2 FileInfo類545

35-4 總線的輸入與輸出547

35-4-1 總線的輸出547

35-4-2 使用總線讀取文字文件548

35-5 文件復制、刪除與移動實操549

第36章 語音與影片551

36-1 Console.Beep( )552

36-1-1 認識Beep( )參數552

36-1-2 認識Do-Re-Mi的頻率552

36-1-3 創建Do-Re電子琴的鍵盤553

36-2 SystemSounds類553

36-3 SoundPlayer類 — 播放wav文件553

36-3-1 Load( )和LoadAsync( )解說554

36-3-2 Play( )和PlaySync( )解說554

36-3-3 循環播放PlayLooping( )和停止播放Stop( )554

36-4 Windows Media Player — 播放MP3文件555

36-4-1 安裝Windows Media Player工具555

36-4-2 播放MP3文件555

36-5 Windows Media Player — 播放MP4文件556

第37章 LINQ查詢558

37-1 認識LINQ559

37-2 LINQ語法559

37-2-1 認識LINQ表達式559

37-2-2 from/select/where實例560

37-2-3 let實例561

37-2-4 orderby實例561

37-2-5 group … by實例561

37-2-6 group … by/into實例562

37-2-7 join實例562

37-3 LINQ常用方法563

第38章 大型程序 — 多窗體的設計565

38-1 窗體架構566

38-1-1 Program.cs566

38-1-2 Form1.cs566

38-1-3 Form1.Designer.cs567

38-1-4 Form1.resx567

38-2 創建多窗體的項目567

38-2-1 增加窗體567

38-2-2 增加與刪除窗體568

38-2-3 切換顯示窗體568

38-2-4 顯示窗體或程序代碼569

38-3 更改窗體的名稱569

38-3-1 更改Text、Name和文件名稱569

38-3-2 查看Program.cs570

38-4 操作多窗體的方法570

38-4-1 創建窗體對象570

38-4-2 顯示窗體570

38-4-3 隱藏窗體571

38-4-4 簡單多窗體實操571

38-4-5 銀行貸款多窗體的實例571

38-5 創建MDI子窗體573

38-5-1 新增子窗體與窗體的排列573

38-5-2 創建含RichTextBox控件的子窗體573