C#圖解教程(第4版)
第3版譯者序
第2版譯者序
1 C 和.NET框架
1.1 在.NET之前
1.1.1 20世紀90年代末的Windows編程
1.1.2 下一代平台服務的目標
1.2 .NET時代
1.2.1 .NET框架的組成
1.2.2 大大改進的編程環境
1.3 編譯成CIL
1.4 編譯成本機代碼並執行
編譯和執行
1.5 CLR
1.6 CLI
CLI的重要組成部分
1.7 各種縮寫
1.8 C 的演化
2 C 編程概述
2.1 一個簡單的C 程序
SimpleProgram的補充說明
2.2 標識符
2.3 關鍵字
2.4 Main:程序的起始點
2.5 空白
2.6 語句
塊
2.7 從程序中輸出文本
2.7.1 Write
2.7.2 WriteLine
2.7.3 格式字符串
2.7.4 多重標記和值
2.7.5 格式化數字字符串
2.8 注釋:為代碼添加注解
2.8.1 關於注釋的補充
2.8.2 文檔注釋
2.8.3 注釋類型總結
3 類型、存儲和變量
3.1 C 程序是一組類型聲明
3.2 類型是一種模板
3.3 實例化類型
3.4 數據成員和函數成員
成員的類別
3.5 預定義類型
預定義類型的補充
3.6 用戶定義類型
3.7 棧和堆
3.7.1 棧
3.7.2 堆
3.8 值類型和引用類型
3.8.1 存儲引用類型對象的成員
3.8.2 C 類型的分類
3.9 變量
3.9.1 變量聲明
3.9.2 多變量聲明
3.9.3 使用變量的值
3.10 靜態類型和dynamic關鍵字
3.11 可空類型
4 類的基本概念
4.1 類的概述
類是一種活動的數據結構
4.2 程序和類:一個快速示例
4.3 聲明類
4.4 類成員
4.4.1 字段
4.4.2 方法
4.5 創建變量和類的實例
4.6 為數據分配內存
合並這兩個步驟
4.7 實例成員
4.8 訪問修飾符
私有訪問和公有訪問
4.9 從類的內部訪問成員
4.10 從類的外部訪問成員
4.11 綜合應用
5 方法
5.1 方法的結構
5.2 方法體內部的代碼執行
5.3 本地變量
5.3.1 類型推斷和var關鍵字
5.3.2 嵌套塊中的本地變量
5.4 本地常量
5.5 控制流
5.6 方法調用
5.7 返回值
5.8 返回語句和void方法
5.9 參數
5.9.1 形參
5.9.2 實參
5.10 值參數
5.11 引用參數
5.12 引用類型作為值參數和引用參數
5.13 輸出參數
5.14 參數數組
5.14.1 方法調用
5.14.2 用數組作為實參
5.15 參數類型總結
5.16 方法重載
5.17 命名參數
5.18 可選參數
5.19 棧幀
5.20 遞歸
6 深入理解類
6.1 類成員
6.2 成員修飾符的順序
6.3 實例類成員
6.4 靜態字段
6.5 從類的外部訪問靜態成員
6.5.1 靜態字段示例
6.5.2 靜態成員的生存期
6.6 靜態函數成員
6.7 其他靜態類成員類型
6.8 成員常量
6.9 常量與靜態量
6.10 屬性
6.10.1 屬性聲明和訪問器
6.10.2 屬性示例
6.10.3 使用屬性
6.10.4 屬性和關聯字段
6.10.5 執行其他計算
6.10.6 只讀和只寫屬性
6.10.7 屬性與公共字段
6.10.8 計算只讀屬性示例
6.10.9 自動實現屬性
6.10.10 靜態屬性
6.11 實例構造函數
6.11.1 帶參數的構造函數
6.11.2 默認構造函數
6.12 靜態構造函數
靜態構造函數示例
6.13 對象初始化語句
6.14 析構函數
6.15 readonly修飾符
6.16 this關鍵字
6.17 索引器
6.17.1 什么是索引器
6.17.2 索引器和屬性
6.17.3 聲明索引器
6.17.4 索引器的set訪問器
6.17.5 索引器的get訪問器
6.17.6 關於索引器的補充
6.17.7 為Employee示例聲明索引器
6.17.8 另一個索引器的示例
6.17.9 索引器重載
6.18 訪問器的訪問修飾符
6.19 分部類和分部類型
6.20 分部方法
7 類和繼承
7.1 類繼承
7.2 訪問繼承的成員
7.3 所有類都派生自object類
7.4 屏蔽基類的成員
7.5 基類訪問
7.6 使用基類的引用
7.6.1 虛方法和覆寫方法
7.6.2 覆寫標記為override的方法
7.6.3 覆蓋其他成員類型
7.7 構造函數的執行
7.7.1 構造函數初始化語句
7.7.2 類訪問修飾符
7.8 程序集間的繼承
7.9 成員訪問修飾符
7.9.1 訪問成員的區域
7.9.2 公有成員的可訪問性
7.9.3 私有成員的可訪問性
7.9.4 受保護成員的可訪問性
7.9.5 內部成員的可訪問性
7.9.6 受保護內部成員的可訪問性
7.9.7 成員訪問修飾符小結
7.10 抽象成員
7.11 抽象類
7.11.1 抽象類和抽象方法的示例
7.11.2 抽象類的另一個例子
7.12 密封類
7.13 靜態類
7.14 擴展方法
7.15 命名約定
8 表達式和運算符
8.1 表達式
8.2 字面量
8.2.1 整數字面量
8.2.2 實數字面量
8.2.3 字符字面量
8.2.4 字符串字面量
8.3 求值順序
8.3.1 優先級
8.3.2 結合性
8.4 簡單算術運算符
8.5 求余運算符
8.6 關系比較運算符和相等比較運算符
比較操作和相等性操作
8.7 遞增運算符和遞減運算符
8.8 條件邏輯運算符
8.9 邏輯運算符
8.10 移位運算符
8.11 賦值運算符
復合賦值
8.12 條件運算符
8.13 一元算術運算符
8.14 用戶定義的類型轉換
顯式轉換和強制轉換運算符
8.15 運算符重載
8.15.1 運算符重載的限制
8.15.2 運算符重載的示例
8.16 typeof運算符
8.17 其他運算符
9 語句
9.1 什么是語句
9.2 表達式語句
9.3 控制流語句
9.4 if語句
9.5 if...else語句
9.6 while循環
9.7 do循環
9.8 for循環
9.8.1 for語句中變量的作用域
9.8.2 初始化和迭代表達式中的多表達式
9.9 switch語句
9.9.1 分支示例
9.9.2 switch語句的補充
9.9.3 分支標簽
9.10 跳轉語句
9.11 break語句
9.12 continue語句
9.13 標簽語句
9.13.1 標簽
9.13.2 標簽語句的作用域
9.14 goto語句
goto語句在switch語句內部
9.15 using語句
9.15.1 資源的包裝使用
9.15.2 using語句的示例
9.15.3 多個資源和嵌套
9.15.4 using語句的另一種形式
9.16 其他語句
10 結構
10.1 什么是結構
10.2 結構是值類型
10.3 對結構賦值
10.4 構造函數和析構函數
10.4.1 實例構造函數
10.4.2 靜態構造函數
10.4.3 構造函數和析構函數小結
10.5 字段初始化語句是不允許的
10.6 結構是密封的
10.7 裝箱和拆箱
10.8 結構作為返回值和參數
10.9 關於結構的其他信息
11 枚舉
11.1 枚舉
11.1.1 設置底層類型和顯式值
11.1.2 隱式成員編號
11.2 位標志
11.2.1 Flags特性
11.2.2 使用位標志的示例
11.3 關於枚舉的補充
12 數組
12.1 數組
12.1.1 定義
12.1.2 重要細節
12.2 數組的類型
12.3 數組是對象
12.4 一維數組和矩形數組
聲明一維數組或矩形數組
12.5 實例化一維數組或矩形數組
12.6 訪問數組元素
12.7 初始化數組
12.7.1 顯式初始化一維數組
12.7.2 顯式初始化矩形數組
12.7.3 初始化矩形數組的語法點
12.7.4 快捷語法
12.7.5 隱式類型數組
12.7.6 綜合內容
12.8 交錯數組
12.8.1 聲明交錯數組
12.8.2 快捷實例化
12.8.3 實例化交錯數組
12.8.4 交錯數組中的子數組
12.9 比較矩形數組和交錯數組
12.10 foreach語句
12.10.1 迭代變量是只讀的
12.10.2 foreach語句和多維數組
12.11 數組協變
12.12 數組繼承的有用成員
Clone方法
12.13 比較數組類型
13 委托
13.1 什么是委托
13.2 委托概述
13.3 聲明委托類型
13.4 創建委托對象
13.5 給委托賦值
13.6 組合委托
13.7 為委托添加方法
13.8 從委托移除方法
13.9 調用委托
13.10 委托的示例
13.11 調用帶返回值的委托
13.12 調用帶引用參數的委托
13.13 匿名方法
13.13.1 使用匿名方法
13.13.2 匿名方法的語法
13.13.3 變量和參數的作用域
13.14 Lambda表達式
14 事件
14.1 發布者和訂閱者
14.2 源代碼組件概覽
14.3 聲明事件
事件是成員
14.4 訂閱事件
14.5 觸發事件
14.6 標准事件的用法
14.6.1 通過擴展EventArgs來傳遞數據
14.6.2 移除事件處理程序
14.7 事件訪問器
15 接口
15.1 什么是接口
使用IComparable接口的示例
15.2 聲明接口
15.3 實現接口
簡單接口的示例
15.4 接口是引用類型
15.5 接口和as運算符
15.6 實現多個接口
15.7 實現具有重復成員的接口
15.8 多個接口的引用
15.9 派生成員作為實現
15.10 顯式接口成員實現
訪問顯式接口成員實現
15.11 接口可以繼承接口
15.12 不同類實現一個接口的示例
16 轉換
16.1 什么是轉換
16.2 隱式轉換
16.3 顯式轉換和強制轉換
強制轉換
16.4 轉換的類型
16.5 數字的轉換
16.5.1 隱式數字轉換
16.5.2 溢出檢測上下文
16.5.3 顯式數字轉換
16.6 引用轉換
16.6.1 隱式引用轉換
16.6.2 顯式引用轉換
16.6.3 有效顯式引用轉換
16.7 裝箱轉換
16.7.1 裝箱是創建副本
16.7.2 裝箱轉換
16.8 拆箱轉換
拆箱轉換
16.9 用戶自定義轉換
16.9.1 用戶自定義轉換的約束
16.9.2 用戶自定義轉換的示例
16.9.3 評估用戶自定義轉換
16.9.4 多步用戶自定義轉換的示例
16.10 is運算符
16.11 as運算符
17 泛型
17.1 什么是泛型
一個棧的示例
17.2 C 中的泛型
繼續棧的示例
17.3 泛型類
17.4 聲明泛型類
17.5 創建構造類型
17.6 創建變量和實例
17.6.1 使用泛型的棧的示例
17.6.2 比較泛型和非泛型棧
17.7 類型參數的約束
17.7.1 Where子句
17.7.2 約束類型和次序
17.8 泛型方法
17.8.1 聲明泛型方法
17.8.2 調用泛型方法
17.8.3 泛型方法的示例
17.9 擴展方法和泛型類
17.10 泛型結構
17.11 泛型委托
另一個 泛型委托的示例
17.12 泛型接口
17.12.1 使用泛型接口的示例
17.12.2 泛型接口的實現必須唯一
17.13 協變
17.14 逆變
17.14.1 接口的協變和逆變
17.14.2 有關可變性的更多內容
18 枚舉器和迭代器
18.1 枚舉器和可枚舉類型
使用foreach語句
18.2 IEnumerator接口
使用IEnumerable和IEnumerator的示例
18.3 泛型枚舉接口
18.4 迭代器
18.4.1 迭代器塊
18.4.2 使用迭代器來創建枚舉器
18.4.3 使用迭代器來創建可枚舉類型
18.5 常見迭代器模式
18.6 產生多個可枚舉類型
18.7 將迭代器作為屬性
18.8 迭代器實質
19 LINQ
19.1 什么是LINQ
19.2 LINQ提供程序
匿名類型
19.3 方法語法和查詢語法
19.4 查詢變量
19.5 查詢表達式的結構
19.5.1 from子句
19.5.2 join子句
19.5.3 什么是聯結
19.5.4 查詢主體中的from...let...where片段
19.5.5 orderby子句
19.5.6 select...group子句
19.5.7 查詢中的匿名類型
19.5.8 group子句
19.5.9 查詢延續:into子句
19.6 標准查詢運算符
19.6.1 標准查詢運算符的簽名
19.6.2 查詢表達式和標准查詢運算符
19.6.3 將委托作為參數
19.6.4 LINQ預定義的委托類型
19.6.5 使用委托參數的示例
19.6.6 使用Lambda表達式參數的示例
19.7 LINQ to XML
19.7.1 標記語言
19.7.2 XML基礎
19.7.3 XML類
19.7.4 使用XML特性
19.7.5 節點的其他類型
19.7.6 使用LINQ to XML的LINQ查詢
20 異步編程
20.1 什么是異步
示例
20.2 async/await特性的結構
20.3 什么是異步方法
20.3.1 異步方法的控制流
20.3.2 await表達式
20.3.3 取消一個異步操作
20.3.4 異常處理和await表達式
20.3.5 在調用方法中同步地等待任務
20.3.6 在異步方法中異步地等待任務
20.3.7 Task.Delay方法
20.4 在GUI程序中執行異步操作
Task.Yield
20.5 使用異步Lambda表達式
20.6 完整的GUI程序
20.7 BackgroundWorker類
在WPF程序中使用BackgroundWorker類的示例代碼
20.8 並行循環
20.9 其他異步編程模式
20.10 BeginInvoke和EndInvoke
20.10.1 等待—直到結束模式
20.10.2 AsyncResult類
20.10.3 輪詢模式
20.10.4 回調模式
20.11 計時器
21 命名空間和程序集
21.1 引用其他程序集
mscorlib庫
21.2 命名空間
21.2.1 命名空間名稱
21.2.2 命名空間的補充
21.2.3 命名空間跨文件伸展
21.2.4 嵌套命名空間
21.3 using指令
21.3.1 using命名空間指令
21.3.2 using別名指令
21.4 程序集的結構
21.5 程序集標識符
21.6 強命名程序集
創建強命名程序集
21.7 程序集的私有方式部署
21.8 共享程序集和GAC
21.8.1 把程序集安裝到GAC
21.8.2 GAC內的並肩執行
21.9 配置文件
21.10 延遲簽名
22 異常
22.1 什么是異常
22.2 try語句
處理異常
22.3 異常類
22.4 catch子句
22.5 使用特定catch子句的示例
22.6 catch子句段
22.7 finally塊
22.8 為異常尋找處理程序
22.9 更進一步搜索
22.9.1 一般法則
22.9.2 搜索調用棧的示例
22.10 拋出異常
22.11 不帶異常對象的拋出
23 預處理指令
23.1 什么是預處理指令
23.2 基本規則
23.3 define和 undef指令
23.4 條件編譯
23.5 條件編譯結構
23.6 診斷指令
23.7 行號指令
23.8 區域指令
23.9 pragma warning指令
24 反射和特性
24.1 元數據和反射
24.2 Type類
24.3 獲取Type對象
24.4 什么是特性
24.5 應用特性
24.6 預定義的保留的特性
24.6.1 Obsolete特性
24.6.2 Conditional特性
24.6.3 調用者信息特性
24.6.4 DebuggerStepThrough特性
24.6.5 其他預定義特性
24.7 有關應用特性的更多內容
24.7.1 多個特性
24.7.2 其他類型的目標
24.7.3 全局特性
24.8 自定義特性
24.8.1 聲明自定義特性
24.8.2 使用特性的構造函數
24.8.3 指定構造函數
24.8.4 使用構造函數
24.8.5 構造函數中的位置參數和命名參數
24.8.6 限制特性的使用
24.8.7 自定義特性的最佳實踐
24.9 訪問特性
24.9.1 使用IsDefined方法
24.9.2 使用GetCustomAttributes方法
25 其他主題
25.1 概述
25.2 字符串
25.3 使用StringBuilder類
25.4 把字符串解析為數據值
25.5 關於可空類型的更多內容
25.5.1 為可空類型賦值
25.5.2 使用空接合運算符
25.5.3 使用可空用戶自定義類型
25.6 Main方法
Main的可訪問性
25.7 文檔注釋
25.7.1 插入文檔注釋
25.7.2 使用其他XML標簽
25.8 嵌套類型
25.8.1 嵌套類的示例
25.8.2 可見性和嵌套類型
25.9 析構函數和dispose模式
25.9.1 標准dispose模式
25.9.2 比較構造函數和析構函數
25.10 和COM的互操作
思維導圖
防止博客圖床圖片失效,防止圖片源站外鏈:
http://www.processon.com/chart_image/5e5aa354e4b03627650ad96b.png)
思維導圖在線編輯鏈接: