本書介紹.NET開發(fā)平臺Visual Studio,通過一個簡單實例了解控制臺方式和界面方式開發(fā)過程。然后系統(tǒng)介紹C#的編程基礎、面向對象編程基礎、面向對象編程進階。此后介紹 Windows應用程序開發(fā)、GDI+編程、文件操作、數(shù)據(jù)庫應用、多線程技術。本書理論聯(lián)系實際,突出基本編程和基本概念,實驗主要鍛煉編程和應用。本書適合作為高校計算機及相關專業(yè)作為C#課程的入門教材,也適合作為技術人員的參考讀物。
C#是微軟.NET簡單、方便和高效的程序設計語言。它在繼承C++和Java等語言優(yōu)點的基礎上,不僅具有封裝、繼承和多態(tài)等特性,而且還增加了不少創(chuàng)新元素,廣泛應用于開發(fā)桌面系統(tǒng)、Web應用、數(shù)據(jù)庫應用、網(wǎng)絡應用等各個方面,是目前主流的程序設計語言和開發(fā)工具。
本版在保持前幾版的基本內容和基本方法的基礎上,以Visual Studio 2015作為平臺,對內容體系結構進行了調整、修改和優(yōu)化,使本書的實用性進一步得到增強。數(shù)據(jù)庫應用教程和對應的實驗介紹了利用Visual C#操作MySQL, 同時提供了利用Visual C#操作SQL Server的文檔,可通過華章網(wǎng)站下載。
本書包含教程、習題和實驗三部分。教程部分先大致介紹.NET開發(fā)平臺Visual Studio,通過一個簡單實例講解控制臺方式和界面方式的開發(fā)過程。在這個基礎上,比較系統(tǒng)地介紹C#的編程基礎、面向對象編程基礎和面向對象編程進階。然后介紹了Windows應用程序開發(fā)、GDI+編程、文件操作、數(shù)據(jù)庫應用和多線程編程。習題部分主要突出基本編程和基本概念,實驗部分則主要用于鍛煉讀者的編程和應用能力,讀者可以先跟著做,然后自己練習。一般來說,通過教程學習、習題練習,特別是認真的上機操作,讀者在較短的時間內就基本能夠在Visual Studio環(huán)境下用 Visual C#解決一些小的應用問題。
本書配有教學課件和所有應用實例的源文件以及相關文檔,教師可用于輔助教學,學生可用于模仿和修改。需要者可在華章網(wǎng)站www.hzbook.com免費下載。
本書由鄭阿奇(南京師范大學)和梁敬東(南京農業(yè)大學)主編。參加本教材編寫工作的還有鄭進、劉美芳等。許多同志對本書的編寫提供了幫助,在此一并表示感謝!
由于編者水平有限,不當之處在所難免,懇請讀者批評指正。
編者Email:easybooks@163.com。
編 者
2021.7
前言
第1章 .NET與C#基礎1
1.1 Visual Studio集成開發(fā)環(huán)境1
1.1.1 Visual C#環(huán)境設置和Visual C#開發(fā)環(huán)境2
1.1.2 Visual Studio項目管理2
1.1.3 Visual Studio IDE界面元素4
1.2 C#程序入門11
1.2.1 C#項目的創(chuàng)建與分類11
1.2.2 個控制臺應用程序12
1.2.3 個Windows窗體程序13
第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 運算符的優(yōu)先級與結合性29
2.3.8 表達式中的類型轉換29
2.4 選擇語句30
2.4.1 if語句30
2.4.2 switch語句32
2.5 循環(huán)語句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 數(shù)組42
2.7.1 數(shù)組的定義42
2.7.2 數(shù)組的初始化43
2.7.3 數(shù)組元素的訪問45
2.7.4 數(shù)組與System.Array47
2.7.5 使用foreach語句遍歷數(shù)組元素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 構造函數(shù)59
3.2.4 析構函數(shù)64
3.3 方法65
3.3.1 方法的聲明66
3.3.2 方法的參數(shù)68
3.3.3 靜態(tài)方法與實例方法73
3.3.4 方法的重載與覆蓋75
3.4 屬性79
3.5 綜合應用實例83
第4章 面向對象編程進階89
4.1 類的繼承與多態(tài)89
4.1.1 繼承89
4.1.2 多態(tài)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應用程序開發(fā)139
5.1 開發(fā)應用程序的步驟139
5.2 窗體140
5.2.1 創(chuàng)建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控件149
5.3.4 TextBox控件150
5.3.5 RadioButton控件152
5.3.6 CheckBox控件153
5.3.7 ListBox控件154
5.3.8 ComboBox控件155
5.3.9 GroupBox控件156
5.3.10 ListView控件157
5.3.11 PictureBox控件158
5.3.12 StatusStrip控件159
5.3.13 Timer控件160
5.4 菜單162
5.4.1 在設計時創(chuàng)建菜單162
5.4.2 以編程方式創(chuàng)建菜單162
5.4.3 上下文菜單163
5.5 對話框167
5.5.1 消息框167
5.5.2 窗體對話框168
5.5.3 通用對話框169
5.6 多文檔界面175
5.6.1 創(chuàng)建MDI父窗體175
5.6.2 創(chuàng)建MDI子窗體175
5.6.3 確定活動的MDI子窗體176
5.6.4 排列子窗體177
5.7 打印與打印預覽177
5.7.1 在設計時創(chuàng)建打印作業(yè)178
5.7.2 選擇打印機打印文件178
5.7.3 打印圖形179
5.7.4 打印文本179
5.8 綜合應用實例180
第6章 GDI+編程182
6.1 GDI+簡介182
6.1.1 坐標系182
6.1.2 像素183
6.1.3 Graphics類183
6.2 繪圖185
6.2.1 畫筆185
6.2.2 畫刷185
6.2.3 繪制直線186
6.2.4 繪制矩形187
6.2.5 繪制橢圓188
6.2.6 繪制圓弧189
6.2.7 繪制多邊形191
6.3 顏色192
6.4 文本輸出193
6.4.1 字體193
6.4.2 輸出文本194
6.5 圖像處理194
6.5.1 繪制圖像194
6.5.2 刷新圖像195
6.6 綜合應用實例195
第7章 文件操作201
7.1 文件概述201
7.2 System.IO模型202
7.2.1 System.IO命名空間的資源202
7.2.2 System.IO命名空間的功能203
7.3 文件與目錄類204
7.3.1 Directory類和Directory-Info類204
7.3.2 File類和FileInfo類205
7.3.3 Path類207
7.3.4 讀取驅動器信息208
7.4 文件的讀與寫209
7.4.1 流209
7.4.2 讀寫文件210
7.4.3 讀寫二進制文件211
7.5 綜合應用實例213
第8章 數(shù)據(jù)庫應用218
8.1 創(chuàng)建MySQL數(shù)據(jù)庫及其對象218
8.1.1 常用數(shù)據(jù)庫對象簡介218
8.1.2 常用SQL語句221
8.1.3 常用數(shù)據(jù)庫對象的創(chuàng)建223
8.2 Visual C#操作數(shù)據(jù)庫228
8.2.1 ADO.NET的架構228
8.2.2 Visual C#項目的建立229
8.2.3 安裝MySQL 5.7的.NET驅動230
8.3 設計學生成績管理系統(tǒng)231
8.3.1 主界面和系統(tǒng)代碼的架構231
8.3.2 設計學生管理功能233
8.3.3 設計成績管理功能238
第9章 多線程編程241
9.1 線程概述241
9.1.1 多線程工作方式242
9.1.2 什么時候使用多線程242
9.2 創(chuàng)建并控制線程243
9.2.1 線程的建立與啟動243
9.2.2 線程的掛起、恢復與終止244
9.2.3 線程的狀態(tài)及優(yōu)先級247
9.3 線程的同步和通信250
9.3.1 lock關鍵字250
9.3.2 線程監(jiān)視器251
9.3.3 線程間的通信252
9.3.4 子線程訪問主線程的控件254
9.4 線程池和定時器256
9.4.1 線程池256
9.4.2 定時器256
9.5 互斥對象257
9.6 綜合應用實例258
習題261
第1章 .NET與C#基礎261
第2章 C#編程基礎262
第3章 面向對象編程基礎266
第4章 面向對象編程進階269
第5章 Windows應用程序開發(fā)271
第6章 GDI+編程273
第7章 文件操作273
第8章 數(shù)據(jù)庫應用274
第9章 多線程編程275
實驗277
實驗1 .NET與C#基礎277
實驗2 C#編程基礎278
實驗3 面向對象編程基礎283
實驗4 面向對象編程進階291
實驗5 Windows 應用程序開發(fā)296
實驗6 GDI+編程300
實驗7 文件操作303
實驗8 數(shù)據(jù)庫應用304
實驗9 多線程編程306