本書以最新的MicrosoftVisualStudio2013作為平臺,在繼承前兩版的基本內容和基本方法的基礎上,對內容體系結構進行調整、修改和優化,特別是增強了實例的實用性。本書包含教程、習題和實驗。教程先介紹.NET開發平臺VS2013,通過一個簡單實例了解控制臺方式和界面方式操作過程。然后系統介紹C#的編程基礎、面向對象編程基礎、面向對象編程進階。此后介紹Windows應用程序開發、GDI+編程、文件操作、數據庫應用、多線程技術。習題主要突出基本編程和基本概念,實驗主要鍛煉編程和應用,讀者先跟著做,然后自己練習。
C#是微軟.NET平臺上最簡單、方便和高效的程序設計語言,它在繼承C++和Java等語言優點的基礎上,不僅具有封裝、繼承和多態等特性,而且還增加了不少創新元素,廣泛應用于開發桌面系統、Web應用、數據庫應用、網絡應用等多個方面,是目前主流的程序設計語言和開發工具。
2007年,我們結合當時的教學和應用開發需要,比較早地編寫了C#程序設計教程。隨著Visual Studio(簡稱VS)平臺的不斷升級,C#的功能更強,VS應用開發更方便,本書也相應地升級到了第2版。
本書第3版在繼承前兩版的基本內容和基本方法的基礎上,以最新的VS2013作為平臺,對內容體系結構進行了調整、修改和優化,特別是在實例的實用性方面有了增強,同時數據庫的系統性方面也進行了較大改變。
本書包含教程、習題和實驗。教程先介紹C#特點和.NET開發平臺VS2013,通過一個簡單實例了解控制臺方式操作過程。此后比較系統地分類介紹VS2013開發環境,同時通過一個簡單實例了解界面方式操作過程。在此基礎上介紹C#的編程基礎、面向對象編程基礎、面向對象編程進階,然后介紹 Windows應用程序開發、GDI+編程、文件操作、數據庫應用、多線程編程。習題主要突出基本編程和基本概念,實驗主要鍛煉編程和應用,讀者先跟著做,然后自己練習。一般來說,通過本教程學習和習題練習,特別是認真進行上機操作,在較短的時間內,讀者基本能夠在VS2013環境下用C#解決一些小型應用問題。
本書配有教學課件和所有應用實例及實驗的源文件,教師可用于輔助教學,學生可用于模仿和修改。需要者可免費在華章網站www.hzbook.com下載。
本書主要由南京農業大學梁敬東、朱毅華、時躍華和趙青松編寫,由鄭阿奇(南京師范大學)和梁敬東統編和定稿。參加編寫的還有彭作民、崔海源、徐衛軍、劉毅、王燕平、湯玫、鄭進、周怡君、丁有和、徐文勝、彭作民、周怡明、劉博宇、陶衛冬、嚴大牛、吳明祥、王海嬌、韓翠青等。許多人士對本書的編寫提供了幫助,在此一并表示感謝!
由于作者水平有限,不當之處在所難免,懇請讀者批評指正。
作者Email:easybooks@163.com。
編 者2015.5
前言
第1章 .NET與C#基礎 1
1.1 .NET開發平臺和C#語言 1
1.1.1 .NET開發平臺概述 1
1.1.2 Visual Studio 2013的集成開發環境 1
1.1.3 第一個C#程序 3
1.2 Visual C# 2013開發環境 5
1.2.1 新建Windows窗體應用程序 5
1.2.2 標題欄 7
1.2.3 菜單欄 7
1.2.4 工具欄 10
1.2.5 工具箱 11
1.2.6 窗口 12
第2章 C#編程基礎 15
2.1 基本類型 15
2.1.1 值類型 15
2.1.2 引用類型 17
2.1.3 值類型與引用類型的關系 18
2.2 變量與常量 20
2.2.1 常量 20
2.2.2 變量 22
2.3 表達式 23
2.3.1 算術運算符 23
2.3.2 關系運算符 24
2.3.3 邏輯運算符 25
2.3.4 位運算符 26
2.3.5 賦值運算符 28
2.3.6 條件運算符 28
2.3.7 運算符的優先級與結合性 29
2.3.8 表達式中的類型轉換 29
2.4 選擇語句 30
2.4.1 if語句 30
2.4.2 switch語句 32
2.5 循環語句 33
2.5.1 while 語句 33
2.5.2 do-while 語句 34
2.5.3 for 語句 35
2.6 跳轉語句 37
2.6.1 continue語句 37
2.6.2 break語句 38
2.6.3 return語句 39
2.6.4 goto語句 39
2.7 數組 42
2.7.1 數組的定義 42
2.7.2 數組的初始化 43
2.7.3 數組元素的訪問 45
2.7.4 數組與System.Array 47
2.7.5 使用foreach語句遍歷數組元素 49
2.8 綜合應用實例 50
第3章 面向對象編程基礎 53
3.1 面向對象概念 53
3.1.1 對象、類、實例化 54
3.1.2 面向對象程序設計語言的三大原則 54
3.2 類 56
3.2.1 類的聲明 56
3.2.2 類的成員 57
3.2.3 構造函數 59
3.2.4 析構函數 64
3.3 方法 65
3.3.1 方法的聲明 66
3.3.2 方法的參數 68
3.3.3 靜態方法與實例方法 73
3.3.4 方法的重載與覆蓋 75
3.4 屬性 79
3.5 綜合應用實例 83
第4章 面向對象編程進階 89
4.1 類的繼承與多態 89
4.1.1 繼承 89
4.1.2 多態 94
4.2 操作符重載 99
4.3 類型轉換 104
4.3.1 隱式類型轉換 104
4.3.2 顯式類型轉換 107
4.3.3 使用Convert轉換 108
4.4 結構與接口 110
4.4.1 結構 110
4.4.2 接口 111
4.5 集合與索引器 114
4.5.1 集合 114
4.5.2 索引器 117
4.6 異常處理 119
4.6.1 異常與異常類 119
4.6.2 異常處理 121
4.7 委托與事件 125
4.7.1 委托 125
4.7.2 事件 128
4.8 預處理命令 130
4.8.1 #define、#undef指令 130
4.8.2 #if、#elif、#else、#endif指令 131
4.8.3 #warning、#error指令 132
4.8.4 #region、#endregion指令 132
4.8.5 #line指令 132
4.9 組件與程序集 132
4.9.1 組件 132
4.9.2 程序集 133
4.10 泛型 136
第5章 Windows應用程序開發 139
5.1 應用程序的開發步驟 139
5.2 窗體 141
5.2.1 創建Windows應用程序項目 141
5.2.2 選擇啟動窗體 142
5.2.3 窗體屬性 142
5.2.4 窗體的常用方法和事件 144
5.3 Windows控件使用 145
5.3.1 常用控件 145
5.3.2 Label 控件和LinkLabel 控件 147
5.3.3 Button 控件 148
5.3.4 TextBox 控件 149
5.3.5 RadioButton控件 152
5.3.6 CheckBox控件 152
5.3.7 ListBox控件 153
5.3.8 ComboBox控件 154
5.3.9 GroupBox控件 155
5.3.10 ListView控件 156
5.3.11 PictureBox控件 158
5.3.12 StatusStrip控件 158
5.3.13 Timer控件 159
5.4 菜單 161
5.4.1 在設計時創建菜單 161
5.4.2 以編程方式創建菜單 161
5.4.3 上下文菜單 162
5.5 對話框 165
5.5.1 消息框 165
5.5.2 窗體對話框 166
5.5.3 通用對話框 167
5.6 多文檔界面 172
5.6.1 創建 MDI 父窗體 173
5.6.2 創建 MDI 子窗體 173
5.6.3 確定活動的 MDI 子窗體 174
5.6.4 排列子窗體 175
5.7 打印與打印預覽 175
5.7.1 在設計時創建打印作業 175
5.7.2 選擇打印機打印文件 176
5.7.3 打印圖形 176
5.7.4 打印文本 177
5.8 綜合應用實例 177
第6章 GDI+編程 179
6.1 GDI+簡介 179
6.1.1 坐標系 179
6.1.2 像素 180
6.1.3 Graphics類 180
6.2 繪圖 182
6.2.1 畫筆 182
6.2.2 畫刷 182
6.2.3 繪制直線 183
6.2.4 繪制矩形 184
6.2.5 繪制橢圓 185
6.2.6 繪制圓弧 186
6.2.7 繪制多邊形 188
6.3 顏色 189
6.4 文本輸出 190
6.4.1 字體 190
6.4.2 輸出文本 191
6.5 圖像處理 191
6.5.1 繪制圖像 191
6.5.2 刷新圖像 192
6.6 綜合應用實例 192
第7章 文件操作 198
7.1 文件概述 198
7.2 System.IO模型 199
7.2.1 System.IO命名空間的資源 199
7.2.2 System.IO命名空間的功能 200
7.3 文件與目錄類 201
7.3.1 Directory類和
DirectoryInfo類 201
7.3.2 File類和FileInfo類 202
7.3.3 Path類 204
7.3.4 讀取驅動器信息 205
7.4 文件的讀與寫 206
7.4.1 流 206
7.4.2 讀寫文件 207
7.4.3 讀寫二進制文件 208
7.5 綜合應用實例 210
第8章 數據庫應用 215
8.1 數據庫基礎 215
8.1.1 數據庫和數據庫管理系統 215
8.1.2 表和視圖 216
8.1.3 用VS2013創建數據庫和表 217
8.1.4 結構化查詢語言(SQL) 219
8.2 ADO.NET概述 224
8.3 創建連接 226
8.3.1 創建Connection對象 226
8.3.2 使用Connection對象 227
8.4 Command對象與DataReader對象 229
8.4.1 創建Command對象 229
8.4.2 使用Command對象操作數據 229
8.4.3 創建DataReader對象 230
8.4.4 使用DataReader對象檢索數據 231
8.5 DataSet對象與DataAdapter對象 234
8.5.1 DataSet對象 234
8.5.2 DataAdapter對象 238
8.6 綜合應用實例 240
第9章 多線程編程 244
9.1 線程概述 244
9.1.1 多線程工作方式 245
9.1.2 什么時候使用多線程 245
9.2 創建并控制線程 246
9.2.1 線程的建立與啟動 246
9.2.2 線程的掛起、恢復與終止 247
9.2.3 線程的狀態及優先級 250
9.3 線程的同步和通信 253
9.3.1 lock關鍵字 253
9.3.2 線程監視器 254
9.3.3 線程間的通信 255
9.3.4 子線程訪問主線程的控件 257
9.4 線程池和定時器 259
9.4.1 線程池 259
9.4.2 定時器 259
9.5 互斥對象 260
9.6 綜合應用實例 261
習題 264
第1章 .NET與C#基礎 264
第2章 C#編程基礎 265
第3章 面向對象編程基礎 269
第4章 面向對象編程進階 272
第5章 Windows應用程序開發 274
第6章 GDI+編程 276
第7章 文件操作 276
第8章 數據庫應用 277
第9章 多線程編程 278
實驗 280
實驗1 .NET與C#基礎 280
實驗2 C#編程基礎 281
實驗3 面向對象編程基礎 286
實驗4 面向對象編程進階 294
實驗5 Windows 應用程序開發 299
實驗6 GDI+編程 303
實驗7 文件操作 306
實驗8 數據庫應用 307
實驗9 多線程編程 312