C# 6.0 學習筆記 — 從第一行 C# 代碼到第一個項目設計
內容描述
<內容簡介>
由周家安所著的《C#6.0學習筆記(附光盤從第一行C#代碼到第一個項目設計全程視頻課堂)/微軟技術開發者叢書》一書全面系統地論述了C#6.O的開發環境、語法基礎、程序結構、編程技巧及編程案例。全書共包括21章,分別介紹了以下內容:開發環境搭建、語法基礎、面向對象編程、類型轉換、字符串處理與數學運算、控制台應用程序、變體的應用、集合與泛型、調試與單元測試、Lambda表達式、LINQ查詢語句、windows窗體應用程序、WPF基礎知識、多線程與異步編程、系統信息管理、文件與流、序列化技術、數據庫訪問技術、反射、網絡編程、互操作性等。在本書最後一章,專門設計了綜合實例——「綜合實例1:照片面積電腦器」和「綜合實例2:文件加密與解密工具」,通過這兩個綜合實例,既可以將前20章的知識融會貫通,又可以拋磚引玉,真正教會讀者開發C#應用程序的實際方法。
為提高讀者學習效率,本書提供了21章的配書視頻教程及近300個實例的源代碼。這些寶貴的學習資源有助於讀者迅速入門,動手開發實踐。
本書既適合作為C#完全自學圖書,也適合作為相關培訓機構的培訓教材或者高校電腦類專業C#語言課程的參考教材。
<章節目錄>
叢書序(沈向洋)
前言
學習資源
第1章 準備工作
1.1 為什麼要編寫程序
1.2 C#與.NET框架的關係
1.3 只需要一個工具——Visual Studio
1.3.1 下載和安裝
1.3.2 認識Visual Studio
1.3.3 如何使用快捷鍵
1.3.4 如何放置子窗口
1.3.5 自動隱藏窗口
1.3.6 巧用快速啟動
1.3.7 個性化設置
1.4 創建個應用程序
1.5 解決方案與項目的關係
第2章 語法基礎
2.1 代碼的基本結構
2.2 命名空間
2.2.1 為什麼要使用命名空間
2.2.2 如何訪問命名空間中的成員
2.2.3 引入命名空間
2.2.4 using static指令
2.3 Main入口點
2.3.1 程序代碼真的從Main方法開始執行嗎
2.3.2 如何選擇入口點
2.4 變量與常量
2.4.1 變量
2.4.2 變量的生命周期
2.4.3 常量
2.5 命名規則
2.6 運算符
2.6.1 示例:簡單運算
2.6.2 示例:自增和自減運算
2.6.3 示例:位運算
2.6.4 示例:比較運算符
2.7 流程控制
2.7.1 順序執行
2.7.2 有選擇地執行
2.7.3 循環往複
2.8 寫註釋是個好習慣
2.9 基本的數據類型
2.10 不要錯過《C#語言規範》文檔
第3章 面向對象編程
3.1 類
3.1.1 字段
3.1.2 屬性
3.1.3 方法
3.1.4 構造函數與析構函數
3.2 結構
3.3 引用類型與值類型
3.4 ref參數與out參數
3.5 方法重載
3.6 靜態類與靜態成員
3.7 繼承與多態
3.7.1 可訪問性
3.7.2 繼承
3.7.3 註意可訪問性要一致
3.7.4 隱藏基類的成員
3.7.5 覆寫基類成員
3.7.6 如何阻止類被繼承
3.8 抽象類
3.9 接口
3.9.1 定義接口
3.9.2 接口與多繼承
3.9.3 實現接口
3.9.4 顯式實現接口
3.10 擴展方法
3.11 委託與事件
3.11.1 定義和使用委託
3.11.2 將方法作為參數傳遞
3.11.3 使用事件
3.12 枚舉
3.12.1 使用枚舉類型
3.12.2 如何獲取枚舉的值列表
3.12.3 如何取得枚舉中各成員的名字
3.12.4 枚舉的位運算
3.13 特性
3.13.1 自定義特性
3.13.2 如何把特性應用到方法的返回值
3.13.3 通過反射技術檢索特性
3.14 數組
3.14.1 定義數組的幾種方法
3.14.2 多維數組
3.14.3 嵌套數組
3.14.4 複製數組
3.14.5 反轉數組
3.14.6 更改數組的大小
3.14.7 在數組中查找元素
3.14.8 靈活使用ArrayList類
第4章 控制台應用程序
4.1 輸出文本信息
4.2 獲取鍵盤輸入
4.2.1 Read方法
4.2.2 ReadKey方法
4.2.3 ReadLine方法
4.3 命令行參數
4.4 設置控制台窗口的外觀
4.5 控制台窗口的大小和位置
第5章 字符串處理與數學運算
5.1 對象的字符串表示形式
5.1.1 重寫ToString方法
5.1.2 擴展方法
5.2 字符串的串聯與拆分
5.2.1 使用+運算符串聯字符串
5.2.2 使用Join方法拼接字符串數組
5.2.3 使用Concat方法創建字符串
5.2.4 使用StringBuilder類創建字符串
5.2.5 使用Split方法拆分字符串
5.3 轉義字符
5.4 英文字母的大小寫轉換
5.5 Parse和TryParse方法
5.6 查找和修改字符串
5.6.1 查找索引
5.6.2 存在性查找
5.6.3 字符串的增刪改
5.6.4 填充字符串
5.7 格式化字符串
5.7.1 IformatProvider接口
5.7.2 區域性相關的信息
5.7.3 實現字符串的格式化
5.8 字符串的複合格式化
5.9 字符串內插
5.10 生成隨機數
5.11 Math類與常用的數學運算
5.12 與日期時間有關的計算
第6章 類型轉換
6.1 隱式轉換
6.2 顯式轉換
6.3 可以為null的值類型
6.4 引用類型的兼容性轉換
6.5 類型轉換幫助器
6.6 自定義轉換
第7章 泛型、集合與變體
7.1 泛型類型
7.1.1 泛型與類
7.1.2 泛型與接口
7.1.3 泛型與類型成員
7.1.4 泛型與委託
7.1.5 泛型約束
7.2 集合
7.2.1 普通集合
7.2.2 泛型集合
7.2.3 字典
7.3 自定義排序
7.4 變體
7.4.1 協變與逆變
7.4.2 類型參數的輸入與輸出
7.4.3 必不可少的技巧
第8章 糾錯與單元測試
8.1 實時糾正語法錯誤
8.2 代碼調試
8.2.1 斷點法
8.2.2 輸出信息法
8.3 斷言
8.4 使用日誌文件
8.5 異常處理
8.6 單元測試
第9章 匿名方法與Lambda表達式
9.1 匿名方法
9.2 Lambda表達式
9.2.1 用於賦值
9.2.2 用於參數傳遞
第10章 集成化查詢
10.1 LINQ基本語法
10.1.1 對查詢結果類型的巧妙處理
10.1.2 延遲執行與強制立即執行
10.2 篩選
10.3 排序
10.4 分組
10.5 更複雜的查詢
10.5.1 動態創建類型
10.5.2 聯合查詢
10.5.3 嵌套查詢
第11章 Windows窗體應用程序
11.1 Windows窗體應用程序的基本結構
11.1.1 客戶區域
11.1.2 控件
11.1.3 應用程序項目
11.1.4 Windows消息循環
11.1.5 演練:手動創建一個Windows應用程序
11.2 ApplicationContext類
11.3 窗體設計器
11.4 控件的基類——Control
11.4.1 示例:設置控件的位置和大小
11.4.2 示例:設置控件的前景色和背景色
11.4.3 示例:調整控件的Z順序
11.5 常規控件
11.5.1 共享事件處理程序
11.5.2 製作「用戶登錄」窗口
11.5.3 CheckBox與RadioButton示例
11.5.4 使用ListBox控件呈現對象列表
11.5.5 自行繪製列表控件的項
11.5.6 組合框
11.5.7 TextBox的自動完成功能
11.5.8 多視圖列表
11.5.9 圖像呈現控件
11.5.10 實時報告進度
11.5.11 選擇日期和時間
11.5.12 規範用戶輸入
11.6 容器控件
11.6.1 在容器內部顯示滾動條
11.6.2 分組面板
11.6.3 網格佈局面板
11.6.4 選項卡
11.6.5 自動排列內容的面板
11.7 工具欄和菜單
11.7.1 工具欄
11.7.2 菜單欄
11.7.3 上下文菜單
11.7.4 自定義承載控件
11.8 對話框
11.8.1 「打開文件」和「保存文件」對話框
11.8.2 字體選擇對話框
11.8.3 顏色選擇對話框
11.8.4 自定義對話框
11.9 用戶控件
11.10 自定義控件
第12章 WPF應用程序
12.1 WPF應用程序項目的結構
12.2 XAML基礎
12.2.1 XAML命名空間
12.2.2 代碼隱藏
12.2.3 標記擴展
12.2.4 內容屬性
12.3 依賴項屬性
12.3.1 定義和使用依賴項屬性
12.3.2 使用元數據
12.3.3 使用已註冊的依賴項屬性
12.3.4 只讀依賴項屬性
12.3.5 附加屬性
12.4 路由事件
12.4.1 路由策略
12.4.2 註冊路由事件的類處理程序
12.5 認識WPF控件
12.5.1 Control類
12.5.2 內容控件
12.5.3 輸入控件
12.6 數據綁定與視圖呈現
12.6.1 用於數據綁定的XAML擴展標記
12.6.2 使用InotifyPropertyChanged接口
12.6.3 上下文綁定
12.6.4 綁定轉換器
12.6.5 數據集合控件
12.6.6 數據模板
12.6.7 數據視圖
12.6.8 ObservableCollection集合
12.7 佈局
12.7.1 Panel類
12.7.2 網格佈局(Grid)
12.7.3 棧佈局(StackPanel)
12.7.4 停靠面板(DockPanel)
12.7.5 定位(Canvas)
12.7.6 自動換行(WrapPanel)
12.7.7 Z順序
12.8 用戶控件與自定義控件
12.9 樣式與資源
12.9.1 樣式中的觸發器
12.9.2 資源的有效範圍
12.9.3 合併資源字典
12.9.4 靜態資源與動態資源
12.10 圖形
12.10.1 Shape類
12.10.2 基本圖形
12.11 動畫
12.11.1 演示圖板
12.11.2 簡單動畫與關鍵幀動畫
第13章 異步編程
13.1 為什麼要使用異步編程
13.2 使用Thread類進行異步編程
13.3 線程鎖
13.4 通過委託執行異步操作
13.5 並行任務
13.5.1 啟動簡單的並行任務
13.5.2 Task與Task類
13.5.3 創建可取消的Task
13.6 async和await關鍵字
13.7 ThreadLocal
13.8 AsyncLocal
第14章 系統信息管理
14.1 管理進程
14.1.1 管理正在運行的進程
14.1.2 啟動新進程
14.1.3 重定向輸入/輸出流
14.2 管理服務
14.3 WMI查詢
14.4 讀取系統參數
14.4.1 ComputerInfo類
14.4.2 Environment類
14.4.3 SystemInformation類
14.4.4 用於WPF的系統信息類
14.5 寫入事件日誌
第15章 文件與流
15.1 創建和刪除目錄
15.2 創建和刪除文件
15.3 流
15.3.1 讀寫文件
15.3.2 內存流
15.4 內存映射文件
15.5 監控文件系統的變化
15.6 獨立存儲
15.7 壓縮與解壓縮
第16章 序列化與反序列化
16.1 二進制序列化
16.2 XML序列化
16.2.1 簡單實現XML序列化和反序列化
16.2.2 自定義XML文檔的節點
16.3 SOAP序列化
16.4 數據協定
16.5 JSON序列化
第17章 訪問數據庫
17.1 SQLLocalDB與SSDT
17.1.1 創建和刪除數據服務實例
17.1.2 在Visual Studio中連接和創建數據庫
17.1.3 編寫SQL語句
17.2 示例數據庫
17.3 連接數據庫
17.4 ADO.NET基礎
17.4.1 使用DataReader來讀取數據
17.4.2 使用DataAdapter填充數據
17.4.3 使用數據適配器更新數據庫
17.4.4 參數化查詢
17.5 LinQ to ADO.NET
17.6 LinQ to SQL
17.6.1 用DataContext直接執行SQL語句
17.6.2 動態創建數據庫
第18章 程序集與反射
18.1 類庫
18.2 反射技術基礎
18.2.1 動態加載程序集
18.2.2 獲取類型信息
18.2.3 動態創建類型實例
18.2.4 動態調用類型成員
第19章 網絡編程
19.1 Socket編程
19.1.1 Socket類
19.1.2 TcpListener類與TcpClient類
19.1.3 UdpClient類
19.2 通信
19.2.1 HttpWebRequest類與HttpWebResponse類
19.2.2 WebClient類
19.2.3 HttpClient類
19.3 獲取網絡接口信息
19.4 向目標電腦發送Ping命令
19.5 用SMTP發送電子郵件
19.6 訪問Web服務
第20章 互操作性
20.1 調用Win32 API函數
20.2 調用組件
第21章 綜合實例
21.1 綜合實例1:照片面積計算器
21.1.1 數據模型準備
21.1.2 讓用戶選擇照片文件
21.1.3 計算所選照片的總面積
21.1.4 語音朗讀計算結果
21.1.5 實現日誌文件的寫入
21.2 綜合實例2:文件加密與解密工具
21.2.1 密碼的處理
21.2.2 提取Key和IV
21.2.3 實現加密與解密