本書從語法講起,由淺入深,層層深入,盡量用簡潔的語言、少量的代碼解釋復雜的C#程序; 主要內容包括C#語法、面向對象編程、Windows編程、數據庫、GDI 繪圖、網絡和線程等。本書適合作為高等院校本科生和研究生的教材。
1. 本書主要內容包括C#語法、面向對象編程、Windows編程、數據庫、GDI 繪圖、網絡和線程等章節。ASP.NET網站和WPF等內容不包括在內,這主要是因為這些內容很復雜,不是短篇幅能闡述的。2. 用電腦繪圖,是我學習計算機的動力之源,當看到自己繪制的圖形閃現在屏幕上,有種別人為無法理解的美學感受,在工程實踐中更是經常使用這方面的知識,非常遺憾的是C#專門講述GDI 繪圖的很少,我想GDI+繪圖一章可能會吸引像我一樣的讀者,如果別人有這個教材,我一定會購買的。我在工程實際中用到*多的就是網絡編程,特別是物聯網,手機,移動終端等程序開發,都需要非常透徹了解了解網絡協議,就數據傳輸來說主要有Sockets,TCP,UDP等技術,只要牽涉網絡就很復雜。本書對此進行了全面解析。由于其復雜性,筆者也經常遺忘,但每次應用時,就會打開自己寫的教程。我希望其他讀者,也會將我的教程當作案頭字典,甚至經典。
目錄
第1章初識C#
1.1Visual Studio.NET簡介
1.2.NET Framework簡介
1.3C#簡介
1.4Visual Studio .NET開發環境
第2章接觸C#
2.1第一個C#程序
2.2關于控制臺程序
2.3C#程序基本結構
2.3.1最簡單的C#結構
2.3.2控制臺基本輸入和輸出語句
2.4編程習慣
第3章C#語法
3.1變量與常量
3.1.1數值類型
3.1.2變量定義
3.1.3常量定義
3.1.4數據類型轉換
3.2運算符
3.2.1算術運算符
3.2.2關系運算符
3.2.3邏輯運算符
3.2.4位運算符
3.2.5賦值運算符
3.2.6三元條件運算符
3.2.7運算符的優先級
3.3選擇語句
3.3.1if語句
3.3.2switch語句
3.4循環
3.4.1while
3.4.2do while
3.4.3for
3.4.4foreach語句
3.4.5跳轉語句
3.5異常
3.5.1try catch語句
3.5.2throw語句
第4章字符串、時間和簡單數組
4.1字符串
4.1.1字符串的定義
4.1.2轉義字符
4.1.3字符串的操作
4.1.4數值與字符串的相互轉化
4.1.5占位符
4.1.6string.Format( )
4.1.7格式化字符串
4.1.8StringBuider
4.1.9字符串索引
4.2簡單數組
4.2.1一維數組
4.2.2多維數組
4.2.3鋸齒數組
4.2.4數組應用舉例
4.3時間
4.3.1DateTime
4.3.2日期時間字符串的顯示格式
4.3.3DateTime的計算
4.3.4TimeSpan
第5章面向對象編程
5.1面向對象
5.2類和對象
5.3封裝、繼承、多態
5.4程序結構
5.5名稱空間
5.6部分類
5.7類的成員
5.7.1訪問修飾符
5.7.2字段
5.7.3方法
5.7.4屬性
5.8過程代碼寫在哪里
5.9方法重載
5.10構造函數
5.11析構函數
5.12this
5.13靜態成員
5.14運算符重載
5.15引用類型與值類型
5.16裝箱與拆箱
5.17函數的參數
5.18索引
5.19結構
5.20枚舉
第6章繼承與多態
6.1繼承
6.2base關鍵字
6.3派生類的構造函數
6.4Object類
6.5多態
6.6隱藏方法new
6.7虛方法virtualoverride
6.8抽象類與抽象方法
6.9密封類和密封方法
6.10ToString()
6.11接口interface
第7章委托與事件
7.1委托定義
7.2委托參數
7.3多播委托
7.4匿名委托
7.5委托耦合
7.6關于事件
7.7發布訂閱
7.8事件參數
7.9事件句柄EventHandler
7.10事件參數EventArgs
第8章泛型
8.1泛型概念
8.2泛型類
8.2.1定義泛型類
8.2.2泛型類的默認值default
8.2.3泛型約束
8.3泛型接口
8.4泛型結構
8.5泛型方法
第9章數組與集合
9.1對象數組
9.2Array類
9.2.1Array數組創建
9.2.2Array數組復制
9.2.3Array數組排序
9.3元組
9.4列表
9.4.1ArrayList
9.4.2List
9.5隊列
9.6棧
9.7鏈表
9.8有序列表
9.9字典
9.10有序字典
9.11Lookup類
9.12集
9.13可觀察集合
9.14位數組
9.14.1BitArray
9.14.2BitVector32
第10章Windows窗體
10.1第一個窗體
10.2第一個按鈕
10.3多個窗體
10.4認識窗體類
10.4.1三個文件
10.4.2Form1.cs
10.4.3Form1.Designer.cs
10.5簡易計算器
10.6窗體和控件的屬性
10.6.1大小和位置
10.6.2控件的停泊與錨點
10.6.3捕捉按鈕小游戲
10.6.4顏色設置
10.7鼠標鍵盤事件
10.7.1鼠標事件
10.7.2鍵盤事件
10.7.3兩個特殊的鍵盤事件
10.8事件的一些問題
10.9多文檔界面
10.10窗體的狀態
10.11窗體事件的執行順序
10.12兩個窗體之間傳遞數據
第11章Windows控件
11.1Windows工具箱
11.2公共控件
11.2.1RadioButton
11.2.2CheckBox
11.2.3ListBox
11.2.4ComboBox
11.2.5TreeView
11.2.6PictureBox控件
11.3菜單和工具欄
11.3.1MenuStrip
11.3.2ToolStrip
11.3.3ContextMenuStrip
11.4容器控件
11.4.1FlowLayoutPanel
11.4.2TableLayoutPanel
11.4.3SplitContainer
11.4.4TabControl
11.5對話框
11.5.1ColorDialog和FontDialog
11.5.2FolderBrowserDialog、OpenFileDialog和SaveFileDialog
第12章文件操作
12.1Directory和DirectoryInfo
12.1.1Directory
12.1.2DirectoryInfo
12.2File和FileInfo
12.2.1File
12.2.2FileInfo
12.3Path和DriveInfo
12.3.1Path
12.3.2相對路徑
12.3.3DriveInfo
12.4文件讀寫
12.4.1File讀文件
12.4.2寫入文件
12.5流
12.5.1讀寫二進制文件
12.5.2讀寫文本文件
12.6資源管理器
第13章數據庫
13.1C#與數據庫的關系
13.2SQL語言
13.3ADO.NET
13.4C#調用Access數據庫
13.4.1OleDbConnection
13.4.2OleDbCommand
13.4.3OleDbDataReader
13.4.4OleDbDataAdapter
13.5DataTable
13.5.1DataTable的定義
13.5.2DataColumn
13.5.3DataRow
13.5.4DataTable提取數據庫數據
13.5.5編輯DataTable中的數據
13.5.6DataRow的狀態
13.5.7DataRow的版本
13.6DataView
13.7DataSet
13.7.1DatSet與DataTable
13.7.2DataSet關系
13.7.3DataSet約束
13.8DataGridView
13.8.1行和列
13.8.2單元格
13.8.3行寬和列寬
13.8.4凍結
13.8.5排序
13.8.6隱藏
13.8.7列包含控件
13.8.8虛擬模式
13.9服務器資源管理器
13.10BindingSource
13.10.1BindingSource的簡單應用
13.10.2BindingSource的定位
13.10.3BindingSource的排序過濾與查找
13.10.4Binding類
13.11可視化數據控件
13.11.1DataSet控件
13.11.2BindingNavigator控件
13.12窗體控件與數據庫
13.12.1ComboBox
13.12.2窗體控件與DataSet
13.12.3控件的數據庫向導
13.13綜合實例
13.13.1創建數據庫
13.13.2創建主窗體
13.13.3創建操作數據庫的公共類
13.13.4創建圖書類別窗體
13.13.5創建增加圖書窗體
13.13.6創建編輯圖書窗體
13.13.7創建圖書查詢窗體
13.14C#調用SQL Server數據庫
13.14.1關于SQL Server Express數據庫
13.14.2創建SQL Server Express數據庫
13.14.3C#調用SQL Server Express數據庫
第14章Lambda表達式與擴展方法
14.1代碼簡化的歷程
14.1.1代碼簡化1
14.1.2代碼簡化2
14.1.3代碼簡化3
14.1.4代碼簡化4
14.1.5代碼簡化5
14.1.6代碼簡化6
14.2Lambda表達式
14.3Func,Action和Predicate
14.3.1Func
14.3.2Action
14.3.3Predicate
14.4委托在List中的簡單應用
14.5擴展方法
第15章Linq
15.1準備數據
15.2投影和篩選
15.3排序
15.4分組
15.5復合from
15.6延遲執行與立即執行
15.6.1延遲執行
15.6.2立即執行
第16章GDI 繪圖
16.1GDI與GDI
16.2繪制簡單圖形
16.3GDI 繪圖原理
16.4Color
16.4.1RGB
16.4.2ARGB
16.4.3網絡安全色
16.4.4Color結構
16.5Pen和Brush
16.5.1Pen
16.5.2Brush
16.6Graphics
16.7Point、Size和Rectangle
16.7.1Point和PointF
16.7.2Size和SizeF
16.7.3Rectangle和RectangleF
16.8繪制圖形
16.9繪制文本
16.10繪制圖片
16.11圖形變換
16.12屏幕刷新問題
16.13Invalidate
16.14橡皮筋
16.15Image和BitMap
16.16ColorMatrix
16.17繪制函數曲線
16.17.1簡單函數曲線
16.17.2動態曲線
16.18不使用OnPaint、Invalidate的方法
第17章網絡編程
17.1網絡基本概念
17.1.1TCP/IP
17.1.2Socket(套接字)
17.1.3其他相關概念
17.1.4客戶與服務器
17.2Socket程序
17.3TCP程序
17.4UDP程序
17.4.1UDP客戶端
17.4.2UDP服務端
17.5異步通信
17.5.1同步和異步
17.5.2Socket異步連接
17.5.3Socket異步連接
17.6聊天程序
17.6.1客戶端
17.6.2服務端
第18章線程
18.1進程與線程
18.2異步委托
18.2.1同步委托
18.2.2異步委托
18.2.3IAsyncResult
18.2.4異步回調AsyncCallback
18.2.5異步回調的Lambda表達式
18.3線程
18.3.1Thread
18.3.2給線程命名
18.3.3給線程傳遞參數
18.3.4線程的控制
18.3.5優先級
18.4線程池
18.5爭用
18.6Windows窗體的線程問題
18.6.1Timer控件的問題
18.6.2System.Threading.Timer類
18.6.3System.Timers類
18.7BackgroundWorker
18.7.1BackgroundWorker控件
18.7.2BackgroundWorker類
18.8窗體與線程交換數據的一種簡易方法
第19章關于變量命名
后記