《C#程序設計及應用教程》詳細介紹C#程序設計及其應用技術。全書由C#程序設計基礎、Windows應用程序設計和Web應用程序設計三部分組成,主要內容包括C#語言基礎知識、面向對象的編程技術、Windows窗體控件、目錄與文件管理、圖形圖像處理、ADO.NET、報表設計、類庫與控件庫設計以及Web應用程序開發。《C#程序設計及應用教程》可作為高等院校計算機及相關專業的教材,也可作為初、中級程序員的參考用書。
《C#程序設計及應用教程(第2版)》詳細介紹C#程序設計及其應用技術。全書由C#程序設計基礎、Windows應用程序設計和web應用程序設計三部分組成.主要內容包括C#言基礎知識、面向對象的編程技術、Windows窗體控件、目錄與文件管理、圖形圖像處理、ADONET、報表設計、類庫與控件庫設計以及Web應用程序開發。在內容深度的把握上,作者充分考慮了初學者的特點。在對相關知識進行系統介紹的同時,特別注重解決初學者剛開始參與項目開發時容易迷惑的問題,重點講解容易混淆的概念.對相關知識的介紹簡潔、清晰、重點明確,真正起到了畫龍點睛的作用。同時.對于比較常用的內容,都有配套的例子和源程序。在內容的安排上,全書的每一個細節。幾乎都貫穿了以讀者為主體.以知識點為主線,以鍛煉動手能力為手段-以解決實際問題為目標的思想。
內容全面:C#程序設計+Windows程序設計+Web程序設計
實用性強:應用實例+使用技巧+每章實踐練習題
配套豐富:PPT+實例源程序代碼+習題參考答案
C#語言是一種完全面向對象的基于.NET的編程語言,已先后被歐洲計算機制造商協會和國際標準化組織批準為高級語言開發標準(ECMA-334、ISOflEC23270)。隨著.NET技術的普及,C#語言已成為開發基于.NET的企業級應用程序的首選語言。
本書第l版以高度的實用性和通俗易懂的講解,受到讀者的普遍歡迎。
本書在繼承第1版教材特色的基礎上,結合作者多年的教學經驗,并特別根據近幾年教學改革的實踐以及對人才培養的高標準要求,對其內容做了進一步的優化、補充和完善。本書在第1版教材的基礎上做了較大改進,使各章結構更加緊湊,知識點的介紹也更突出,更適合學生學習,同時增加了一些新的技術。另外,對一些初學者比較容易糊涂的地方,也作了更為詳細的闡述。
本書具有以下特色。
1.語言簡潔、通俗易懂對一些初學者比較難以理解的知識點,盡量用簡潔、形象而又淺顯易懂的語言來表達。比如泛型、接口、組件、特性、紋理、圖形圖像用法等。
2.代碼詳細、注重實用對項目開發中比較常用的技術,都用與實際應用非常接近的例子來說明,而且有詳細的代碼解釋。這些例子都是在項目開發中初學者迫切想實現而又不知如何做的內容,使讀者學習后能很快明白具體用法,能馬上編寫出生動實用的應用程序。
3.循序漸進、由淺人深章節內容的安排采用循序漸進的辦法,對于后面例子中用到的知識點,在前面章節的介紹中都有相應地鋪墊,使讀者從最簡單的知識人手,一步步走入很有“藝術性”的各種“深奧”的編程技術中。
4.重點介紹、適當擴充對常用的技術,本書花費了較多的篇幅來介紹,并以圖文并茂的形式,將重點內容展現出來。同時,也適當地介紹了一些比較新的編程技術,如LlNO等,使讀者能夠根據介紹的內容,很快對所學知識舉一反三、靈活運用。
第1篇 C#程序設計基礎
第1章 概述 2
1.1 C#語言及其發展簡介 2
1.1.1 C#語言的特點 2
1.1.2 C#語言的發展過程 3
1.1.3 C#語言與其他語言的比較 3
1.2 Visual Studio開發環境的功能和特點 5
1.2.1 Microsoft.NET Framework 6
1.2.2 應用程序模板 7
1.3 C#應用程序的一般結構 10
1.3.1 命名空間 10
1.3.2 Main方法 12
1.3.3 文件結構 12
1.3.4 程序代碼注釋 13
1.4 斷點設置與程序調試 15
1.5 C#代碼編寫命名建議 16
習題 16
第2章 數據類型與流程控制 17
2.1 數據類型 17
2.1.1 C#數據類型的分類 17
2.1.2 整型 18
2.1.3 浮點型 19
2.1.4 布爾型 19
2.1.5 字符類型與字符串類型 19
2.2 不同數據類型之間的轉換 20
2.2.1 顯式轉換與隱式轉換 20
2.2.2 裝箱和拆箱 22
2.3 常量與變量 22
2.3.1 常量 23
2.3.2 變量 23
2.3.3 匿名類型的變量 24
2.4 運算符與表達式 24
2.4.1 運算符 25
2.4.2 表達式 26
2.5 控制臺應用程序與格式化輸出 26
2.5.1 控制臺輸出 26
2.5.2 控制臺輸入 27
2.5.3 字符串的格式化輸出 27
2.5.4 數字的格式化輸出 28
2.5.5 日期和時間的格式化輸出 29
2.6 C#流程控制語句 30
2.6.1 分支語句 30
2.6.2 循環語句 33
2.6.3 跳轉語句 36
2.6.4 異常處理語句 39
習題 41
第3章 常用數據類型的用法 42
3.1 字符串 42
3.1.1 字符串的創建與表示形式 42
3.1.2 字符串比較 42
3.1.3 字符串查找 43
3.1.4 求子字符串 44
3.1.5 字符串的插入、刪除與替換 44
3.1.6 移除首尾指定的字符 45
3.1.7 字符串的合并與拆分 45
3.1.8 字符串中字母的大小寫轉換 46
3.1.9 String與StringBuilder的區別 46
3.2 數組 47
3.2.1 數組的聲明與初始化 47
3.2.2 數組的秩與數組長度 48
3.2.3 一維數組 48
3.2.4 多維數組 48
3.2.5 交錯數組 49
3.2.6 動態改變數組大小 50
3.2.7 數組元素的排序與查找 51
3.2.8 數組的統計運算及數組和字符串之間的轉換 52
3.3 枚舉 53
3.3.1 枚舉的定義 53
3.3.2 枚舉的基本用法 53
3.4 泛型 54
3.4.1 泛型的定義和引用 54
3.4.2 可空類型的泛型 55
3.5 泛型集合 56
3.5.1 哈希集合 57
3.5.2 列表和排序列表 57
3.5.3 鏈表 58
3.5.4 字典和排序字典 59
3.5.5 隊列 60
3.5.6 堆棧 60
3.6 日期與時間處理 60
3.7 數學運算 62
3.8 隨機數 63
習題 64
第4章 面向對象的編程基礎 65
4.1 類 65
4.1.1 類的聲明與成員組織 65
4.1.2 構造函數 67
4.1.3 字段和局部變量 68
4.1.4 靜態成員和實例成員 69
4.1.5 訪問修飾符 69
4.2 結構 69
4.3 方法 71
4.3.1 方法的定義與調用 71
4.3.2 方法中的參數傳遞 72
4.3.3 方法重載 74
4.4 屬性與索引器 75
4.4.1 屬性 75
4.4.2 索引器 77
習題 79
第5章 面向對象的高級編程 80
5.1 類的繼承與多態性 80
5.1.1 基類和擴充類 80
5.1.2 多態性 82
5.1.3 抽象類 85
5.1.4 密封類 86
5.1.5 繼承過程中構造函數的處理 87
5.2 版本控制 88
5.3 接口 90
5.3.1 接口的聲明與實現 91
5.3.2 顯式方式實現接口 92
5.4 委托與事件 93
5.4.1 委托 93
5.4.2 事件 95
5.5 反射 96
5.6 序列化與反序列化 97
5.6.1 二進制序列化與反序列化 97
5.6.2 XML序列化與反序列化 99
習題 101
第2篇 Windows應用程序設計
第6章 窗體、控件和組件 104
6.1 窗體與對話框 104
6.1.1 窗體應用程序的啟動和停止 104
6.1.2 窗體的創建、顯示、隱藏和關閉 105
6.1.3 窗體常用屬性 107
6.1.4 窗體位置及外觀控制 108
6.1.5 單文檔窗體和多文檔窗體 110
6.1.6 對話框 110
6.2 控件共有的基本操作 114
6.2.1 控件常用屬性和基本操作 114
6.2.2 控件的錨定和停靠 116
6.2.3 控件的常用鼠標與鍵盤事件 117
6.3 容器類控件和常用組件 119
6.3.1 分組控件(Panel、GroupBox) 119
6.3.2 工具提示組件(ToolTip) 120
6.3.3 錯誤提示組件(ErrorProvider) 120
6.3.4 定時組件(Timer) 120
6.4 文本操作類控件 122
6.4.1 標簽控件(Label、LinkLabel) 122
6.4.2 文本控件(TextBox、Masked TextBox、RichTextBox) 122
6.5 選擇操作類控件 125
6.5.1 列表控件(ListBox、ComboBox) 125
6.5.2 復選控件(CheckBox、CheckedListBox) 128
6.5.3 單選控件(RadioButton) 132
6.5.4 日期時間選擇控件(DateTimePicker) 133
6.6 圖像操作類控件和組件 135
6.6.1 圖像與動畫控件(PictureBox) 135
6.6.2 圖像列表組件(ImageList) 136
6.7 菜單、工具欄與狀態欄 137
6.7.1 菜單控件(MenuStrip) 137
6.7.2 快捷菜單控件(Context MenuStrip) 139
6.7.3 工具欄控件(ToolStrip) 139
6.7.4 狀態欄控件(StatusStrip) 139
6.8 視圖操作類控件 142
6.8.1 列表視圖控件(ListView) 142
6.8.2 樹形視圖控件(TreeView) 144
6.9 其他常用控件 147
6.9.1 選項卡控件(TabControl) 147
6.9.2 面板復合控件(SplitContainer) 149
6.9.3 任務欄圖標組件(NotifyIcon) 150
習題 152
第7章 目錄與文件管理 153
7.1 系統環境相關類 153
7.1.1 Environment類 153
7.1.2 DriveInfo類 154
7.2 目錄管理 154
7.2.1 Directory類與DirectoryInfo類 155
7.2.2 Path類 156
7.2.3 目錄的創建、刪除和移動 156
7.2.4 FolderBrowserDialog對話框 157
7.3 文件管理 158
7.3.1 File類與FileInfo類 158
7.3.2 文件的復制、刪除與移動 158
7.3.3 文件屬性 159
7.3.4 OpenFileDialog與SaveFileDialog對話框 160
7.4 文件的讀寫 162
7.4.1 文件編碼 162
7.4.2 文本文件的讀寫 163
7.4.3 二進制文件的讀寫 165
7.5 FileSystemWatcher組件 166
習題 167
第8章 圖形圖像處理 168
8.1 圖形圖像繪制基礎知識 168
8.1.1 GDI+概述 168
8.1.2 Graphics類 170
8.1.3 顏色 170
8.1.4 Paint事件 171
8.2 繪制基本圖形 172
8.2.1 創建畫筆 172
8.2.2 繪制直線 172
8.2.3 繪制矩形 177
8.2.4 繪制多邊形 177
8.2.5 繪制曲線 179
8.2.6 繪制橢圓和扇形 180
8.3 填充圖形 181
8.3.1 創建畫刷 181
8.3.2 填充單色 182
8.3.3 填充漸變色 183
8.3.4 填充陰影 184
8.3.5 填充紋理 185
8.3.6 填充路徑 186
8.4 圖像處理 187
8.4.1 繪制圖像 187
8.4.2 保存圖像 188
8.4.3 圖像的拉伸與反轉變換 191
8.5 圖形與圖像的平移、旋轉和縮放 193
8.6 文字處理 194
習題 195
第9章 ADO.NET與數據操作 196
9.1 ADO.NET簡介 197
9.1.1 數據訪問技術及其發展概述 197
9.1.2 ADO.NET數據訪問模型 197
9.2 數據庫與數據訪問工具 198
9.2.1 SQL Server數據庫分類 198
9.2.2 數據訪問可視化工具 200
9.3 ADO.NET數據訪問對象 203
9.3.1 SqlConnection對象 204
9.3.2 SqlCommand對象 205
9.3.3 SqlDataAdapter對象 209
9.3.4 DataTable對象 210
9.3.5 DataSet對象 212
9.4 數據綁定技術 213
9.4.1 簡單數據綁定與復雜數據綁定 213
9.4.2 數據源組件(BindingSource) 215
9.4.3 導航控件(BindingNavigator) 217
9.5 DataGridView控件 220
9.5.1 默認功能 220
9.5.2 綁定數據源 221
9.5.3 標題及行列控制 224
9.5.4 單元格控制 227
9.5.5 異常處理 230
9.6 數據處理 233
9.6.1 圖像數據處理 233
9.6.2 關聯表數據處理 236
9.7 存儲過程 240
9.8 語言集成查詢(LINQ) 244
9.8.1 LINQ簡介 244
9.8.2 查詢表達式 246
9.8.3 對象關系設計器(O/R設計器) 249
習題 251
第10章 報表設計 252
10.1 水晶報表基礎知識 252
10.1.1 水晶報表的分類 252
10.1.2 嵌入式水晶報表設計器 253
10.1.3 報表節 253
10.1.4 報表數據源 254
10.2 水晶報表的設計與顯示 254
10.2.1 水晶報表對象模型 254
10.2.2 顯示與打印水晶報表 256
習題 264
第11章 類庫與控件庫設計 265
11.1 特性(Attribute) 265
11.2 類庫設計 266
11.2.1 設計類庫 267
11.2.2 調用類庫 268
11.3 用戶控件 269
11.3.1 在屬性窗口中顯示屬性提示 269
11.3.2 制作按鈕用戶控件 271
11.4 控件庫設計 275
11.4.1 設計控件庫 275
11.4.2 調用控件庫 276
習題 276
第12章 正則表達式 277
12.1 正則表達式及其相關類 277
12.1.1 正則表達式簡介 277
12.1.2 正則表達式相關類 280
12.2 Web信息瀏覽與搜索 285
12.2.1 WebBrower控件 285
12.2.2 利用正則表達式搜索Web資源 287
習題 291
第3篇 Web應用程序設計
第13章 Web應用程序設計基礎 294
13.1 Web應用程序開發工具 294
13.2 頁面設計基礎 295
13.2.1 HTML 295
13.2.2 CSS 297
13.2.3 JavaScript 299
13.3 Web應用程序中的常用對象 300
13.3.1 Response與Request 301
13.3.2 Application與Session對象 301
13.4 網頁切換與網頁間的數據傳遞 301
13.4.1 網頁的切換 302
13.4.2 網頁間的數據傳遞 302
習題 302
第14章 ASP.NET Web服務器控件 303
14.1 標準控件 303
14.1.1 簡單控件 304
14.1.2 Table控件 306
14.1.3 HiddenField控件 309
14.2 數據操作控件 310
14.2.1 SqlDataSource組件 310
14.2.2 GridView控件 313
14.2.3 DataList控件 315
14.2.4 DetailsView控件 319
14.2.5 FormView控件 320
14.3 驗證控件 320
14.3.1 ValidationSummary控件 321
14.3.2 RequiredFieldValidator控件 321
14.3.3 RangeValidator控件 322
14.3.4 CompareValidator控件 323
14.3.5 RegularExpressionValidator控件 325
14.3.6 CustomValidator控件 326
14.4 導航控件 327
14.4.1 SiteMapPath控件 327
14.4.2 Menu控件 329
14.4.3 TreeView控件 331
習題 334
第15章 Web應用程序開發實例 335
15.1 系統分析與總體規劃 335
15.1.1 需求分析 335
15.1.2 技術處理 336
15.1.3 總體規劃 336
15.2 系統架構設計 336
15.2.1 系統功能結構 337
15.2.2 文件組織 337
15.2.3 數據庫結構 338
15.3 前臺功能模塊設計 338
15.3.1 首頁設計 339
15.3.2 單記錄多選類測評表頁面設計 342
15.3.3 多記錄多選類測評表頁面設計 343
15.3.4 數據編輯類測評表頁面設計 346
15.4 后臺功能模塊設計 347
15.4.1 管理員登錄頁面設計 347
15.4.2 系統管理頁面設計 347
15.4.3 統計匯總表設計 348
15.4.4 報表打印與輸出設計 349
第1章 概述
C#語言和Microsoft.NET框架簡化了軟件開發的復雜度,利用C#語言和基于.NET框架的Visual Studio 2008(簡稱VS2008)集成開發平臺,程序員可以非常方便地開發出各種應用程序。
這一章我們對C#語言、.NET框架以及VS2008作一個基本的了解。
1.1 C#語言及其發展簡介
C#(讀作“see sharp”)的叫法很有創意,意思是讓我們看看這種語言多么鋒利無比。C++不是有兩個“+”號嗎,那就讓它有4個“+”號吧,這就是“#”的來歷。
1.1.1 C#語言的特點
C#語言具有以下主要特點。
(1)簡潔的語法
C#語言和Java語言一樣,使用了統一的操作符,淘汰了C++語言中亂糟糟的表示符號和偽關鍵字,使用最簡單、最常見的形式進行描述。
(2)精心的面向對象設計
C#語言是完全按照面向對象的思想來設計的,因此,它具有面向對象所應有的一切特性,如封裝、繼承、多態性等。
在類的繼承方面,C#語言只允許單繼承,即一個類不會有多個基類,從而避免了類型定義的混亂。
在C#語言中,每種類型都是一個對象,不存在全局函數、全局變量等概念,所有常量、變量、屬性、方法、索引、事件等都必須封裝在類中,從而使代碼具有更好的可瀆性,也避免了發生命名沖突的可能。