C# 7.0核心技術指南(原書第7版)
作 者: [美] 約瑟夫·阿壩哈瑞(Joseph Albahari)本·阿壩哈瑞(Ben Albahari) 著 劉夏 譯 譯
定 價: 259
出?版?社: 機械工業出版社
出版日期: 2019年08月01日
頁 數: 1072
裝 幀: 簡裝
ISBN: 9787111631347
●前言1章 C#和.NET Framework簡介71.1 面向對像71.2 類型安全性81.3 內存管理91.4 平臺支持91.5 C#和CLR91.6 CLR和.NET Framework101.7 其他框架111.7.1遺留框架和小眾框架121.7.2 Windows Runtime121.8 C#簡史131.8.1 C# 7.0新特性141.8.2 C# 6.0新特性171.8.3 C# 5.0新特性181.8.4 C# 4.0新特性191.8.5 C# 3.0新特性191.8.6 C# 2.0新特性20第2章 C#語言基礎212.1 個C#程序212.2 語法242.2.1 標識符和關鍵字242.2.2 字面量、標點與運算符262.2.3 注釋262.3 類型基礎272.3.1 預定義類型示例272.3.2 自定義類型示例282.3.3 轉換302.3.4 值類型與引用類型312.3.5 預定義類型分類342.4 數值類型352.4.1 數值字面量362.4.2 數值轉換382.4.3 算術運算符392.4.4 自增和自減運算符392.4.5 特殊整數類型運算392.4.6 8位和16位整數類型412.4.7 特殊的float和double值412.4.8 double和decimal的對比422.4.9 實數的舍入誤差432.5 布爾類型和運算符432.5.1 布爾類型轉換432.5.2 相等和比較運算符442.5.3 條件運算符442.6 字符串和字符452.6.1 char轉換462.6.2 字符串類型462.7 數組482.7.1 默素初始化492.7.2 多維數組492.7.3 簡化數組初始化表達式512.7.4 邊界檢查522.8 變量和參數522.8.1 棧和堆522.8.2 明確賦值542.8.3 默認值542.8.4 參數552.8.5 引用局部變量(C# 7)612.8.6 引用返回值(C# 7)612.8.7 var隱式類型局部變量612.9 表達式和運算符622.9.1 基礎表達式632.9.2 空表達式632.9.3 賦值表達式632.9.4 運算符優先級和結合性642.9.5 運算符表642.10 null運算符682.10.1 null合並運算符682.10.2 null條件運算符(C# 6)682.11 語句692.11.1 聲明語句692.11.2 表達式語句702.11.3 選擇語句712.11.4 迭代語句752.11.5 跳轉語句772.11.6其他語句782.12 命名空間792.12.1 using指令802.12.2 using static指令(C# 6)802.12.3 命名空間中的規則812.12.4 類型和命名空間別名832.12.5 不錯命名空間特性83第3章 在C#中創建類型863.1 類863.1.1 字段863.1.2 方法873.1.3 實例構造器893.1.4 對像初始化器923.1.5 this引用943.1.6 屬性943.1.7 索引器973.1.8 常量983.1.9 靜態構造器993.1.10 靜態類1003.1.11 終結器1013.1.12 分部類型和方法1013.1.13 nameof運算符(C#6)1023.2 繼承1033.2.1 多態1043.2.2 類型轉換和引用轉換1043.2.3 虛函數成員1073.2.4 抽像類和抽像成員1083.2.5 隱藏繼承成員1083.2.6 密封函數和類1103.2.7 base關鍵字1103.2.8 構造器和繼承1103.2.9 重載和解析1123.3 object類型1123.3.1 裝箱和拆箱1133.3.2 靜態和運行時類型檢查1143.3.3 GetType方法和typeof運算符1153.3.4 ToString方法1153.3.5 object的成員列表1163.4 結構體1163.5 訪問權限修飾符1183.5.1 示例1183.5.程序集1193.5.3 可訪問性封頂1193.5.4 訪問權限修飾符的限制1193.6 接口1203.6.1 擴展接口1213.6.2 顯式接口實現1213.6.3 虛方法實現接口成員1223.6.4 在子類中重新實現接口1223.6.5 接口和裝箱1243.7 枚舉類型1253.7.1 枚舉類型轉換1263.7.2 標志枚舉類型1263.7.3 枚舉運算符1273.7.4 類型安全問題1273.8 嵌套類型1283.9 泛型1303.9.1 泛型類型1303.9.2 為什麼需要泛型1313.9.3 泛型方法1323.9.4 聲明類型參數1333.9.5 typeof和未綁定泛型類型1333.9.6 泛型的默認值1343.9.7 泛型的約束1343.9.8 繼承泛型類型1363.9.9 自引用泛型聲明1363.9.10 靜態數據1363.9.11 類型參數的轉換1373.9.12 協變1383.9.13 逆變1413.9.14 C#泛型和C++模板對比142第4章 C#的不錯特性1434.1 委托1434.1.1 用委托書寫插件方法1444.1.2 多播委托1454.1.3 實例目標方法和靜態目標方法1474.1.4 泛型委托類型1474.1.5 Func和Action委托1484.1.6 委托和接口1494.1.7 委托的兼容性1504.2 事件1524.2.1 標準事件模式1544.2.2 事件訪問器1584.2.3 事件的修飾符1594.3 Lambda表達式1594.3.1 顯式指定Lambda參數的類型1604.3.2 捕獲外部變量1614.3.3 Lambda表達式和局部方法的對比1634.4 匿名方法1644.5 try語句和異常1654.5.1 catch子句1674.5.2 finally塊1684.5.3 拋出異常1704.5.4 System.Exception的關鍵屬性1724.5.5 常用的異常類型1724.5.6 TryXXX方法模式1734.5.7 異常的替代方式1734.6 可枚舉類型和迭代器1744.6.1 可枚舉類型1744.6.2 集合的初始化器1754.6.3 迭代器1764.6.4 迭代器語義1774.6.5 組合序列1784.7 可空類型1804.7.1 Nullable結構體1804.7.2 隱式和顯式的可空對像轉換1804.7.3 裝箱拆箱可空值1814.7.4 運算符優先級提升1814.7.5 在bool?上使用&和|運算符1834.7.6 可空類型和null運算符1834.7.7 可空類型的應用場景1844.7.8 可空類型的替代方案1844.8 擴展方法1854.8.1 擴展方法鏈1864.8.2 二義性與解析1864.9 匿名類型1884.組(C# 7)1894.素命名1904.10.2 ValueTuple.Create1924.10組的解構1924.10組的比較1934.10.5 System.Tuple類1934.11 特性1934.11.1 特性類1944.11.2 命名和位置特性參數1944.11.3 特性的目標1954.11.4 指定多個特性1954.12 調用者信息特性1954.13 動態綁定1974.13.1 靜態綁定與動態綁定1974.13.2 自定義綁定1984.13.3 語言綁定1994.13.4 RuntimeBinderException2004.13.5 動態類型的運行時表示2004.13.6 動態轉換2014.13.7 var與dynamic2014.13.8 動態表達式2024.13.9 無動態接收者的動態調用2024.13.10 動態表達式中的靜態類型2034.13.11 不可調用的函數2044.14 運算符重載2054.14.1 運算符函數2064.14.2 重載等號和比較運算符2064.14.3 自定義隱式和顯式轉換2074.14.4 重載true和false2084.15 不安全的代碼和指針2094.15.1 指針基礎2094.15.2 不安全的代碼2094.15.3 fixed語句2094.15.4 指針取成員運算符2104.15.5 數組2104.15.6 void*2114.15.7 指向非托管代碼的指針2124.16 預處理指令2124.16.1 Conditional特性2134.16.2 Pragma警告2144.17 XML文檔2144.17.1 標準的XML文檔標簽2154.17.2 用戶定義標簽2174.17.3 類型或成員交叉引用217第5章 框架概述2195.1 .NET標準2.02215.1.1 舊版本.NET標準2225.1.2 引用程序集2225.2 CLR和核心框架2235.2.1 繫統類型2235.2.2 文本處理2235.2.3 集合2235.2.4 查詢2245.2.5 XML2245.2.6 診斷2245.2.7 並發與異步2255.2.8 流與I/O2255.2.9 網絡2255.2.10 序列化2255.2.11 程序集、反射和特性2265.2.12 動態編程2265.2.13 安全性2265.2.14 不錯線程功能2265.2.15 並行編程2275.2.16 應用程序域2275.2.17 原生互操作性與COM互操作性2275.3 應用技術2275.3.1 用戶界面API2275.3.2 後臺技術2305.3.3 分布式繫統技術232第6章 框架基礎2346.1 字符串與文本處理2346.1.1 字符2346.1.2 字符串2366.1.3 字符串的比較2406.1.4 StringBuilder2436.1.5 文本編碼和Unicode2446.2 日期和時間2486.2.1 TimeSpan2486.2.2 DateTime和DateTimeOffset2496.3 日期和時區2556.3.1 DateTime與時區2566.3.2 DateTimeOffset與時區2566.3.3 TimeZone和TimeZoneInfo2576.3.4 夏令時與DateTime2616.4 格式化和解析2626.4.1 ToString和Parse2636.4.2 格式提供器2636.5 標準格式字符串與解析標記2686.5.1 數字格式字符串2686.5.2 NumberStyles2706.5.3 Date/Time格式字符串2726.5.4 DateTimeStyles2756.5.5 枚舉的格式字符串2756.6 其他轉換機制2756.6.1 Convert類2766.6.2 XmlConvert2786.6.3 類型轉換器2786.6.4 BitConverter2796.7 全球化2796.7.1 全球化檢查清單2806.7.2 測試2806.8 操作數字2816.8.1 轉換2816.8.2 Math2816.8.3 BigInteger2826.8.4 Complex2836.8.5 Random2846.9 枚舉2856.9.1 枚舉值轉換2856.9.2 列舉枚舉值2876.9.3 枚舉的工作方式2886.10 Guid結構體2886.11 相等比較2896.11.1 值相等和引用相等2896.11.2 標準等值比較協議2906.11.3 相等比較和自定義類型2956.12 順序比較3006.12.1 IComparable3006.12.2 <和>3016.12.3 實現IComparable接口3026.13實用類3036.13.1 Console類3036.13.2 Environment類3046.13.3 Process類3046.13.4 AppContext類306第7章 集合3077.1 枚舉3077.1.1 IEnumerable和IEnumerator3087.1.2 IEnumerable和IEnumerator3097.1.3 實現枚舉接口3117.2 ICollection和IList接口3157.2.1 ICollection和ICollection3167.2.2 IList和IList3177.2.3 IReadOnlyList3187.3 Array類3187.3.1 創建和索引3217.3.2 枚舉3227.3.3 長度和維數3237.3.4 搜索3237.3.5 排序3257.3.6 反素3267.3.7 復制數組3267.3.8 轉換和調整大小3267.4 List、Queue、Stack和Set3277.4.1 List和ArrayList3277.4.2 LinkedList3307.4.3 Queue和Queue3327.4.4 Stack和Stack3327.4.5 BitArray3337.4.6 HashSet和SortedSet3347.5 字典3367.5.1 IDictionary3367.5.2 IDictionary3387.5.3 Dictionary和HashTable3397.5.4 OrderedDictionary3407.5.5 ListDictionary和HybridDictionary3407.5.6 排序字典3417.6 自定義集合與代理3427.6.1 Collection和CollectionBase3437.6.2 KeyedCollection和DictionaryBase3457.6.3 ReadOnlyCollection3487.7 擴展相等比較和排序操作3497.7.1 IEqualityComparer和EqualityComparer3507.7.2 IComparer和Comparer3527.7.3 StringComparer3537
內容簡介
本書是一本C#7.0的技術指南,通過26章的內容,繫統、全面、細致地講解了C#7.0從基礎知識到各種不錯特性的命令、語法和用法。本書的講解深入淺出,同時為每一個知識點都專門設計了貼切、簡單、易懂的學習案例,從而可以幫助讀者準確地理解知識點的含義並快速地學以致用。
[美] 約瑟夫·阿壩哈瑞(Joseph Albahari)本·阿壩哈瑞(Ben Albahari) 著 劉夏 譯 譯
Joseph Albahari 是《C# 6.0 in a Nutshell》以及《LINQ Pocket Reference》的合著者。他編寫了流行的代碼執行器與 LINQ 查詢輔助工具 LINQPad。Ben Albahari 是《C# 6.0 in a Nutshell》的合著者。他曾就職於 Microsoft,並擔任 Entity Framework 的項目經理。
C# 7.0是Microsoft對其旗艦編程語言的第六次重大升級,這次升級提高了C#語言的功能和靈活性。一方面,它提供了一些不錯的抽像,例如查詢表達式和異步延續;另一方面,它允許通過自定義值類型和可選的指針結構進行底層的效率優化。C#語言特性的增長也極大地加重了我們的學習負擔。雖然一些工具如Microsoft IntelliSense和在線參考文檔可以為工作提供諸多便利,但若要使用它們仍需要一些現有的概念和知識體繫作為支撐。本書以簡明統一的方式(而非煩瑣冗長的介紹)準確闡釋了這些知識。與之前的四個版本一樣,本書也是圍繞概念和用例來進行組織的。因此無論是順序閱讀還是隨意瀏覽都大有裨益。雖然本書隻要求讀者具備基本的背景知識,但是它仍然有一定的深度,比較適合中不錯讀者閱讀。本書內容涵蓋C#語言、CLR和Framework核心程序集。我們之所以做出這樣的選擇是希望為一些難以理解的主題,例如並發、安......
"