目錄
第1章概述
1.1.NET
1.2C#
1.3VS開發環境
1.4編程初試
1.4.1控制臺程序
1.4.2WinForm程序
1.5問與答
1.5.1學習.NET相關技術,將來能干什麼
1.5.2何謂注釋,C#中的注釋有幾種
1.5.3使用VS.NET時有什麼技巧
1.5.4VS太大,是否有更小巧的C#學習開發環境
1.6思考與練習
1.7實戰任務
第2章數據類型與運算符
2.1常量與變量
2.1.1常量
2.1.2變量
2.1.3變量的命名
2.1.4變量的命名法
2.2簡單數據類型
2.2.1bool類型
2.2.2整型類型
2.2.3char類型
2.2.4小數類型
2.3枚舉類型
2.4結構類型
2.5隱式類型變量
2.6運算符
2.6.1算術運算符
2.6.2賦值運算符
2.6.3關繫運算符與邏輯運算符
2.6.4位運算符
2.6.5條件運算符
2.6.6自增與自減
2.6.7運算符的優先級
2.7轉換
2.7.1隱式轉換
2.7.2顯式轉換
2.7.3Type.Parse
2.7.4Convert類
2.7.5裝箱與拆箱
2.7.6as & is
2.8問與答
2.8.1數值類型那麼多,怎樣記憶各類型的取值範圍
2.8.2如何知道數值類型占用多大存儲空間
2.8.3數值運算中,除數不能為零嗎
2.8.40/0.0=?
2.8.5NaN和Infinity參與計算時,結果如何
2.8.6定義枚舉類型時,個枚舉對應的數值必須為0嗎
2.8.7定義枚舉類型時,各個枚舉項對應的數值必須連續嗎
2.8.8如何更改枚素的數據類型
2.8.9各種類型的默認值分別是什麼
2.8.10枚舉類型的位操作是什麼意思
2.9思考與練習
2.10實戰任務
第3章程序控制
3.1選擇語句
3.1.1if語句
3.1.2switch語句
3.2循環語句
3.2.1for語句
3.2.2while語句
3.2.3do…while語句
3.3跳轉語句
3.3.1break語句
3.3.2continue語句
3.3.3goto語句
3.3.4return語句
3.3.5throw語句
3.4問與答
3.4.1if和switch分別應用於什麼場合
3.4.2if和switch的各個分支的書寫順序有影響嗎
3.4.3如何避免太深的嵌套
3.4.4for、while、do…while分別應用於什麼場合
3.4.5如何知道程序執行耗費的時間
3.4.6如何產生隨機數
3.4.7什麼叫程序集
3.5思考與練習
3.6實戰任務
第4章面向對像基礎
4.1類與對像
4.2字段
4.3屬性
4.3.1常規屬性
4.3.2自動屬性
4.4索引器
4.5方法
4.5.1方法的定義與使用
4.5.2變量作用域
4.5.3方法重載
4.5.4參數的個數不定問題——params
4.5.5ref與out
4.5.6this
4.6Main()函數
4.7構造函數
4.8static
4.9析構函數
4.10委托
4.10.1委托使用三步曲
4.10.2多播委托
4.11匿名方法
4.12Lambda表達式
4.13事件
4.13.1事件使用三步曲
4.13.2三類事件
4.14繼承
4.14.1繼承的實現
4.14.2抽像類及抽像方法
4.14.3類的密封
4.14.4繼承過程中構造函數的執行順序及調用
4.14.5protected修飾符
4.15多態
4.16接口
4.17匿名類型
4.18結構
4.18.1DateTime
4.18.2TimeSpan
4.19object類
4.19.1相等問題
4.19.2GetType()
4.19.3ToString()
4.20問與答
4.20.1什麼是命名空間
4.20.2readonly與const究竟有何區別
4.20.3什麼是分部類
4.20.4密封類的擴展——擴展方法
4.20.5is和as——兼談如何讓singer不要調用基類方法
4.20.6重寫與重載
4.20.7抽像方法和虛方法
4.20.8接口、抽像類、類與結構
4.20.9接口中有重名的方法該如何辦
4.20.10base與this
4.20.11什麼是運算符重載
4.20.12如何給自定義的結構定義相等邏輯
4.21思考與練習
4.22實戰任務
第5章數組
5.1聲明及初始化
5.2訪問與遍歷
5.3Array
5.4聰明的數組——索引器
5.5問與答
5.5.1如何使用Array.Sort()來排序對像數組
5.5.2數組的大小真的沒法調整嗎
5.5.3如何查找數組中具有特定素
5.5.4索引器的參數類型一定要為int嗎
5.5.5如何不計算即可獲得值、小值、和值、平均值
5.6思考與練習
5.7實戰任務
第6章字符串
6.1字符串及其轉義符
6.1.1字符串及其構造
6.1.2字符轉義
6.2常用方法
6.2.1string類的方法
6.2.2字符串對像的方法
6.3StringBuilder
6.4編碼
6.5問與答
6.5.1s=null,s=string.Empty與s
=
6.5.2字符串與數組之間如何互相轉化
6.5.3字符串與字節數組之間的轉換有何意義
6.5.4各種編碼之間如何轉換
6.6思考與練習
6.7實戰任務
第7章WinForm初步
7.1窗體
7.2控件常用操作及其鍵盤和鼠標事件
7.2.1控件常用操作
7.2.2鍵盤事件處理
7.2.3鼠標事件處理
7.3基本控件
7.3.1Label控件
7.3.2Button控件
7.3.3RadioButton控件
7.3.4CheckBox控件
7.3.5TextBox控件
7.3.6ListBox控件
7.3.7ComboBox控件
7.3.8PictureBox控件
7.3.9NumericUpDown控件
7.3.10ProgressBar控件
7.3.11HScrollBar控件和VScrollBar控件
7.3.12TrackBar控件
7.3.13ToolTip控件
7.3.14GroupBox控件
7.3.15Panel控件
7.3.16MonthCalendar控件
7.4常用組件
7.4.1Timer組件
7.4.2ImageList組件
7.5菜單
7.5.1MenuStrip
7.5.2ContextMenuStrip
7.5.3ToolStrip
7.5.4StatusStrip
7.6對話框
7.6.1OpenFileDialog
7.6.2SaveFileDialog
7.6.3FontDialog
7.6.4ColorDialog
7.6.5FolderBrowserDialog
7.7高級控件
7.7.1RichTextBox控件
7.7.2CheckedListBox控件
7.7.3TabControl控件
7.7.4ListView控件
7.7.5TreeView控件
7.7.6WebBrowser控件
7.8COM組件
7.8.1Shockwave Flash Object組件
7.8.2Windows Media Player組件
7.9MDI
7.10問與答
7.10.1鍵盤事件KeyDown、KeyUp和KeyPress有何關繫
7.10.2Click和MouseClick有何關繫
7.10.3多種鼠標事件有何關繫
7.10.4如何獲取應用程序的運行環境信息
7.10.5如何獲取應用程序的運行目錄
7.10.6如何實現拖放
7.10.7關於剪貼板
7.10.8如何動態構建控件樹
7.10.9如何實現窗體間的數據交互
7.11思考與練習
7.12實戰任務
第8章文件
8.1文件繫統
8.1.1驅動器訪問
8.1.2目錄訪問
8.1.3文件訪問
8.1.4路徑
8.2文件處理流
8.2.1FileStream
8.2.2StreamReader與StreamWriter
8.2.3BinaryReader與BinaryWriter
8.3問與答
8.3.1如何創建臨時文件
8.3.2如何比較兩個文件是否一樣
8.4思考與練習
8.5實戰任務
第9章集合
9.1普通集合
9.1.1ArrayList
9.1.2Queue
9.1.3Stack
9.1.4Hashtable
9.1.5SortedList
9.1.6BitArray
9.2泛型
9.3泛型集合
9.3.1ListT
9.3.2QueueT和StackT
9.3.3DictionaryK,V和KeyValuePairK,
V
9.3.4SortedListK,V
9.3.5HashSetT
9.4問與答
9.4.1集素應該如何正確刪除
9.4.2如何使用內置排序器來實現ArrayList排序——IComparer
9.4.3如何完全自定義排序規則來排序
9.4.4IEnumerable和IEnumerator有什麼作用和特性
9.4.5什麼是可空類型
9.4.6什麼是Tuple
9.4.7泛型變量的默認值是多少
9.4.8針對如下泛型方法,下面的調用代碼可行嗎
9.4.9泛型的比較問題
9.4.10HashSetT的擴展方法
9.4.11集合的運算
9.5思考與練習
9.6實戰任務
第10章GDI
10.1概述
10.2輔助繪圖對像
10.2.1Point結構
10.2.2Size結構
10.2.3Rectangle結構
10.2.4Color結構
10.2.5Font類
10.2.6Graphics類
10.3基本繪圖工具
10.3.1Pen
10.3.2Brush
10.4圖像處理
10.4.1繪制直線
10.4.2繪制矩形
10.4.3繪制多邊形
10.4.4繪制曲線
10.4.5繪制橢圓
10.4.6繪制圖像
10.5常見應用
10.5.1格式轉換
10.5.2水印
10.5.3灰化
10.5.4底片
10.5.5浮雕
10.5.6文本打印
10.6問與答
10.6.1如何實現網頁顏色與Color的轉換
10.6.2Math類
10.7思考與練習
10.8實戰任務
第11章多線程
11.1進程
11.2多線程基礎操作
11.2.1創建線程
11.2.2啟動線程
11.2.3終止線程
11.2.4暫停線程
11.2.5合並線程
11.3線程同步
11.3.1lock
11.3.2Monitor
11.3.3Mutex
11.3.4ContextBoundObject
11.3.5ManualResetEvent
11.3.6AutoResetEvent
11.4線程池
11.5跨線程的控件訪問
11.6問與答
11.6.1如何使用匿名方法來創建線程
11.6.2如何使用Lambda表達式來創建線程
11.6.3如何向線程方法傳遞多個參數
11.6.4如何通過手動同步事件給多個線程加鎖
11.7思考與練習
11.8實戰任務
第12章序列化
12.1二進制序列化
12.2SOAP序列化
12.3XML序列化
12.4問與答
12.4.1采用二進制序列化時,從序列化後的文件能看到什麼
12.4.2如何序列化到內存流
12.4.3反序列化時想使用被禁止序列化的字段該如何辦
12.4.4屬性在序列化時遵從什麼樣的規律呢
12.5思考與練習
12.6實戰任務
第13章壓縮與解壓
13.1DeflateStream
13.2GZipStream
13.3問與答
13.3.1using的作用
13.3.2如何實現多文件的壓縮解壓
13.4思考與練習
13.5實戰任務
第14章SQL
14.1數據庫基本概念
14.2SQL學習環境及基本操作
14.2.1Microsoft SQL Server Management
Studio
14.2.2數據庫與表的基本SQL操作
14.3Insert
14.4Select
14.4.1查詢數據
14.4.2查詢指定字段
14.4.3排序
14.4.4過濾
14.4.5查詢前n條記錄
14.4.6模糊查詢
14.4.7統計
14.4.8分組
14.4.9空值查詢
14.5Update
14.6Delete
14.7問與答
14.7.1如果表名或者字段名中有空格該如何辦
14.7.2如何隻返回不重復的記錄
14.7.3如何指定結果的列名
14.7.4如何對查詢到的結果進行一定的組合或者運算後呈現
14.7.5如何使用between關鍵字
14.7.6如何使用in關鍵字
14.7.7如何使用[]、[^]通配符
14.7.8compute子句如何使用
14.7.9什麼是聯合查詢
14.7.10什麼是嵌套查詢
14.8思考與練習
14.9實戰任務
第15章ADO.NET
15.1Connection
15.2Command
15.3DataReader
15.4DataAdapter
15.5DataSet
15.6參數化查詢
15.7數據綁定
15.7.1相關控件與組件
15.7.2簡單控件綁定
15.7.3復雜控件綁定
15.7.4數據綁定示例
15.8問與答
15.8.1記不住連接字符串的寫法如何辦
15.8.2Access數據庫的連接字符串是怎樣的
15.8.3連接Excel工作簿的連接字符串如何寫
15.8.4如何使用App.config文件
15.9思考與練習
15.10實戰任務
附錄A異常處理與調試
A.1異常處理
A.1.1異常處理的幾種形式
A.1.2異常的引發
A.1.3自定義異常
A.2調試
參考文獻