●第1章 C#概述11.1 Hello, World21.2 C#語法基礎111.3 使用變量201.4 控制臺輸入和輸出241.5 注釋281.6 托管執行和CLI321.7 多個.NET框架37第2章 數據類型432.1 基本數值類型442.2 更多基本類型532.3 null和void672.4 數據類型轉換69第3章 更多數據類型773.1 類型的劃分773.2 可空修飾符803.3 &nb組833.4 數組90第4章 操作符和控制流程1094.1 操作符1104.2 控制流程概述1264.3 代碼塊1324.4 代碼塊、作用域和聲明空間1354.5 布爾表達式1374.6 按位操作符1474.7 控制流程語句(續)1534.8 跳轉語句1654.9 C#預處理器指令171第5章 方法和參數1815.1 調用方法1825.2 聲明方法1895.3 using指令1955.4 Main()的返回值和參數2005.5 高級方法參數2035.6 遞歸2155.7 方法重載2175.8 可選參數2205.9 用異常實現基本錯誤處理225第6章 類2416.1 類的聲明和實例化2456.2 實例字段2496.3 實例方法2516.4 使用this關鍵字2526.5 訪問修飾符2596.6 屬性2616.7 構造函數2786.8 靜態成員2896.9 擴展方法2996.10 封裝數據3016.11 嵌套類3046.12 分部類307第7章 繼承3137.1 派生3147.2 重寫基類3267.3 抽像類3387.4 所有類都從System.Object派生3447.5 使用is操作符驗證基礎類型3457.6 使用is操作符進行模式匹配3467.7 switch語句中的模式匹配3477.8 使用as操作符進行轉換349第8章 接口3538.1 接口概述3548.2 通過接口實現多態性3558.3 接口實現3608.4 在實現類和接口之間轉換3668.5 接口繼承3668.6 多接口繼承3698.7 接口上的擴展方法3698.8 通過接口實現多繼承3718.9 版本控制3748.10 比較接口和類3758.11 比較接口和特性377第9章 值類型3799.1 結構3839.2 裝箱3909.3 枚舉398第10章 合式類型41110.1 重寫object的成員41110.2 操作符重載42410.3 引用其他程序集43210.4 定義命名空間44210.5 XML注釋44510.6 垃圾回收44910.7 資源清理45210.8 推遲初始化461第11章 異常處理46511.1 多異常類型46511.2 捕捉異常46911.3 常規catch塊47311.4 異常處理規範47511.5 自定義異常47911.6 重新拋出包裝的異常483第12章 泛型48712.1 如果C#沒有泛型48812.2 泛型類型概述49312.3 約束50612.4 泛型方法51912.5 協變性和逆變性52412.6 泛型的內部機制531第13章 委托和Lambda表達式53713.1 委托概述53813.2 聲明委托類型54213.3 Lambda表達式55013.4 匿名方法556第14章 事件57514.1 使用多播委托編碼Publish-Subscribe模式57614.2 理解事件591第15章 支持標準查詢操作符的集合接口60315.1 集合初始化器60415.2 IEnumerable使類成為集合60715.3 標準查詢操作符61315.4 匿名類型之於LINQ646第16章 使用查詢表達式的LINQ65716.1 查詢表達式概述65816.2 查詢表達式隻是方法調用676第17章 構建自定義集合67917.1 更多集合接口68017.2 主要集合類68317.3 提供索引器70217.4 返回null或者空集合70517.5 迭代器705第18章 反射、特性和動態編程72118.1 反射72218.2 特性73518.3 使用動態對像進行編程759第19章 多線程處理77119.1 多線程處理基礎77419.2 使用System.Threading78119.3 異步任務78919.4 取消任務81019.5 基於任務的異步模式81619.6 並行迭代84619.7 並行執行LINQ查詢856第20章 線程同步86320.1 線程同步的意義86420.2 計時器893第21章 平臺互操作性和不安全代碼89721.1 平臺調用89821.2 指針和地址91021.3 通過委托執行不安全代碼920第22章 公共語言基礎結構(CLI)92322.1 CLI的定義92422.2 CLI的實現92522.3 .NET標準92822.4 BCL92922.5 C#編譯成機器碼92922.6 運行時93222.7 程序集、清單和模塊93622.8 公共中間語言93922.9 公共類型繫統93922.10 公共語言規範94022.11 &nb數據94122.12 NET Native和AOT編譯942Contents1 Introducing C# 1Hello, World 2C# Syntax Fundamentals 11Working with Variables 20Console Input and Output 24Commne ts 28Managed Execution and the Common Language Infrastructure 32 ltiple .NET Frameworks 372 Data Types 43Fundamental Numeric Types 44More Fundamental Types 53null and void 67Conversions between Data Types 693 More with Data Types 77Categories of Types 77Nullable Modifier 80Tuples 83Arrays 904 Operators and Control Flow 109Operators 110Introducing Flow Control 126Code Blocks ({}) 132Code Blocks, Scopes, and Declaration Spaces 135Boolean Expressions 137Bitwise Operators (<<, >>, |, &, ^, ~) 147Co
在軟件工程的發展歷史中,用於編寫計算機程序的方法經歷了幾次思維模式的重大轉變。每種思維模式都以前一種為基礎,宗旨都是增強代碼的組織,並降低復雜性。本書將帶領你體驗相同的思維模式轉變過程。本書開始幾章會指導你學習順序編程結構。在這種編程結構中,語句按編寫順序執行。該結構的問題在於,隨著需求的增加,復雜性也指數級增加。為降低復雜性,將代碼塊轉變成方法,產生了結構化編程模型。在這種模型中,可以從一個程序中的多個位置調用同一個代碼塊,不需要復制。但即使有這種結構,程序還是會很快變得臃腫不堪,需進一步抽像。所以,在此基礎上人們又提出了面向對像編程的概念,這將在第6章開始討論。在此之後,你將繼續學習其他編程方法,比如基於接口的編程和LINQ(以及它促使集合API發生的改變),並最終學習通過特性(attribute)進行初級的聲明性編程(第18章)。本書有以下三個主要職能。全面講述C#語言,其內容已遠遠等