第1章 C#概述 1
1.1C#簡介1
1.1.1.NET概述1
1.1.2C#語言的發展3
1.1.3C#語言的特點4
1.2C#程序入門體驗5
1.2.1一個簡單的C#控制臺應用程序6
1.2.2一個簡單的Win 32應用程序10
1.2.3一個具有輸入功能的Win 32應用
程序12
1.2.4一個簡單的Web應用程序15
1.3C#程序的特點16
習題17
實驗119
第2章C#程序設計基礎20
2.1常量與變量20
2.1.1常量21
2.1.2變量22
2.2C#的數據類型24
2.2.1簡單類型24
2.2.2枚舉型enum25
2.2.3結構型struct26
2.2.4數據類型轉換28
2.3運算符與表達式29
2.3.1算術運算符與表達式29
2.3.2賦值運算符與表達式31
2.3.3關繫運算符與表達式32
2.3.4邏輯運算符與表達式32
2.3.5運算符優先級33
2.4數組和字符串34
2.4.1一維數組34
2.4.2多維數組36
2.4.3數組型的數組37
2.4.4字符串string39
習題41
實驗243
第3章C#程序的流程控制45
3.1C#程序的分支語句45
3.1.1if語句45
3.1.2多分支if…else if語句47
3.1.3switch語句48
3.1.4分支語句的嵌套51
3.2C#程序的循環語句52
3.2.1while語句52
3.2.2do…while語句54
3.2.3for語句55
3.2.4foreach語句57
3.2.5循環語句的嵌套58
3.3跳轉語句59
3.3.1break語句59
3.3.2continue語句60
習題62
實驗364
第4章面向對像程序設計入門67
4.1面向對像的基本概念67
4.1.1對像68
4.1.2事件與方法68
4.1.3類與對像69
4.1.4抽像、封裝、繼承與多態69
4.2類的定義與使用71
4.2.1類的聲明71
4.2.2類的實例化71
4.2.3類的可訪問性73
4.2.4值類型與引用類型74
4.3類的成員及其定義75
4.3.1常量與字段75
4.3.2屬性76
4.3.3方法79
4.3.4構造函數81
4.3.5析構函數82
4.4方法的參數傳遞83
4.4.1按值傳參83
4.4.2按引用傳參84
4.4.3輸出參數85
4.4.4引用類型的參數傳遞86
4.4.5數組型參數88
4.5方法的重載89
4.5.1方法的重載89
4.5.2構造函數的重載91
習題93
實驗496
第5章面向對像的高級程序
設計101
5.1靜態成員與靜態類101
5.1.1靜態成員101
5.1.2靜態構造函數103
5.1.3靜態類104
5.2類的繼承性與多態性104
5.2.1類的繼承性105
5.2.2類的多態性109
5.3抽像類112
5.3.1抽像類及其抽像成員113
5.3.2重載抽像方法113
5.4接口115
5.4.1接口的聲明116
5.4.2接口的實現116
5.4.3接口多重繼承與實現116
5.4.4接口的使用118
5.4.5抽像類與接口的比較121
5.5嵌套類、分部類與命名空間121
5.5.1嵌套類121
5.5.2分部類123
5.5.3命名空間124
習題126
實驗5128
第6章集合、索引器與泛型133
6.1集合133
6.1.1集合概述133
6.1.2ArrayList134
6.1.3哈希表138
6.1.4棧和隊列140
6.2索引器141
6.2.1索引器的定義與使用141
6.2.2索引器與屬性的比較145
6.3泛型145
6.3.1泛型概述146
6.3.2泛型集合146
6.3.3自定義泛型148
習題153
實驗6154
第7章程序調試與異常處理156
7.1程序錯誤156
7.1.1程序錯誤分類156
7.1.2調試程序錯誤158
7.2程序的異常處理160
7.2.1異常的概念160
7.2.2異常類161
7.2.3try-catch語句162
7.2.4finally語句163
7.2.5throw語句與拋出異常164
習題166
實驗7168
第8章基於事件驅動的程序設計
技術170
8.1基於事件的編程思想170
8.2委托172
8.2.1委托概述172
8.2.2委托的聲明、實例化與使用172
8.2.3委托與匿名函數173
8.2.4多路廣播與委托的組合175
8.3事件175
8.3.1聲明事件176
8.3.2訂閱事件177
8.3.3觸發事件178
8.4基於事件的Windows編程180
8.4.1Windows應用程序概述181
8.4.2Windows窗體與事件驅動編程182
習題187
實驗8188
第9章多線程和異步編程193
9.1多線程的概念193
9.1.1線程和進程193
9.1.2線程的生命周期和狀態194
9.1.3線程的優先級194
9.2線程創建與控制195
9.2.1創建和啟動線程195
9.2.2控制線程196
9.3多線程的同步199
9.3.1線程安全199
9.3.2線程同步策略200
9.4線程池205
9.4.1線程池管理205
9.4.2ThreadPool類205
9.5異步編程206
9.5.1異步編程和多線程206
9.5.2異步編程模式206
習題210
實驗9212
第10章Windows程序的界面
設計214
10.1窗體與控件概述214
10.1.1Windows窗體214
10.1.2窗體的控件216
10.2常用輸入與輸出控件219
10.2.1文本顯示控件219
10.2.2文本編輯控件219
10.2.3按鈕控件221
10.2.4圖像顯示控件224
10.3列表與選擇類控件226
10.3.1選項與選項組226
10.3.2列表類控件228
10.3.3其他選擇類控件229
10.3.4日歷與計時器控件230
10.4對話框及其選項卡設計234
10.4.1對話框概述234
10.4.2對話框的選項卡235
10.4.3消息框235
10.4.4通用對話框240
10.5菜單、工具欄和狀態欄242
10.5.1菜單243
10.5.2工具欄244
10.5.3狀態欄245
10.6SDI和MDI應用程序248
10.6.1創建SDI應用程序248
10.6.2創建MDI應用程序249
習題250
實驗10252
第11章C#數據庫編程技術255
11.1ADO.NET概述255
11.1.1ADO.NET的架構255
11.1.2ADO.NET的一般使用步驟256
11.2使用ADO.NET訪問數據庫259
11.2.1使用Connection連接數據庫259
11.2.2使用Command對像訪問
數據庫260
11.2.3使用DataReader對像訪問
數據庫264
11.2.4使用DataAdaper與DataSet
對像操作數據庫268
11.3LINQ to SQL編程273
11.3.1LINQ概述273
11.3.2LINQ的查詢子句與表達式274
11.3.3LINQ to SQL的應用276
習題285
實驗11287
第12章文件操作與編程技術289
12.1文件的輸入/輸出289
12.1.1文件I/O與流289
12.1.2讀寫文本文件290
12.1.3讀寫二進制文件291
12.1.4對像的序列化293
12.2文件操作控件296
12.2.1SaveFileDialog與OpenFileDialog
控件296
12.2.2FolderBrowseDialog控件298
12.2.3應用實例:簡易的寫字板程序299
12.3XML文檔編程302
12.3.1XML概述302
12.3.2XML文檔的創建304
12.3.3XML文檔的查詢307
12.3.4XML文檔的編輯309
習題312
實驗12313
第13章網絡應用與面向服務程序
設計315
13.1網絡編程基礎315
13.1.1計算機網絡的概述315
13.1.2計算機網絡的通信協議316
13.1.3System.Net概述317
13.2Socket編程320
13.2.1Socket編程概述320
13.2.2TCP應用編程323
13.2.3UDP應用編程327
13.3FTP與文件傳輸編程330
13.3.1WebRequest和WebResponse類330
13.3.2FTP客戶端的實現331
13.4基於Web API的面向服務編程336
13.4.1ASP.NET Web API概述336
13.4.2Web API服務器端編程337
13.4.3HttpClient客戶端編程341
習題344
實驗13346
第14章多媒體編程技術348
14.1GDI+繪圖348
14.1.1GDI+概述348
14.1.2創建Graphics對像350
14.1.3顏料、鋼筆和畫筆351
14.1.4線條與圖形的繪制352
14.1.5圖像和文本的繪制359
14.1.6坐標繫統及變換362
14.2Windows Media Player組件的
使用367
14.2.1Windows Media Player組件的
介紹367
14.2.2Windows Media Player組件的
使用369
習題372
實驗14373
參考文獻375