中图网(原中国图书网):网上书店,尾货特色书店,30万种特价书低至2折!

歡迎光臨中圖網 請 | 注冊

包郵 深入解析C#(第4版)

出版社:人民郵電出版社出版時間:2020-10-01
開本: 16開 頁數: 416
中 圖 價:¥77.4(6.0折) 定價  ¥129.0 登錄后可看到會員價
加入購物車 收藏
開年大促, 全場包郵
?新疆、西藏除外
本類五星書更多>
買過本商品的人還買了

深入解析C#(第4版) 版權信息

深入解析C#(第4版) 本書特色

C#領域不可多得的經典著作,新版重磅升級!1.知名技術專家的經典之作,在C#和.NET領域享有盛譽。 2.與其他泛泛介紹C#的圖書不同,本書深度探究C#的特性,并結合技術發展,引領讀者深入C#的時空。 3.作者從語言設計的動機出發,介紹支持這些特性的核心概念;基于C#語言的發展背景介紹新的語言特性,并用極富實際意義的示例,向讀者展示編寫代碼和設計解決方案的理想方式。 4.新版重新組織了內容,進行了重寫與濃縮,還全面更新并細致剖析了C#6和C#7的新增特性。 5.提供源代碼。作者將多年的C#開發經驗與讀者分享,讀者可咀其精華、免走彎路,使程序設計水平更上一層樓。

深入解析C#(第4版) 內容簡介

C#語言簡潔優雅,精妙強大,是當今編程語言的集大成者,功能不斷推陳出新,受到眾多開發人員的推崇。本書是C#領域的經典著作,新版重磅升級,不僅重新組織了內容,還全面更新并細致剖析了C#6和C#7的新增特性,為讀者奉上知識盛宴。作者在詳盡展示C#各個知識點的同時,注重從現象中挖掘本質,解讀語言背后的設計思想,深入探究了C#的核心概念和經典特性,并將這些特性融入代碼示例,幫助讀者順暢使用C#,享受使用C#編程的樂趣。

深入解析C#(第4版) 目錄

目錄
第 一部分 C#背景介紹
第 1章 大浪淘沙 2
1.1 一門與時俱進的語言 2
1.1.1 類型系統——全能型助手 3
1.1.2 代碼更簡潔 4
1.1.3 使用LINQ簡化數據訪問 8
1.1.4 異步 8
1.1.5 編碼效率與執行效率之間的取舍 9
1.1.6 快速迭代:使用小版本號 10
1.2 一個與時俱進的平臺 11
1.3 一個與時俱進的社區 12
1.4 一本與時俱進的好書 13
1.4.1 內容詳略得當 13
1.4.2 使用Noda Time作為示例 14
1.4.3 術語選擇 14
1.5 小結 15
第二部分 從C# 2到C#5
第 2章 C# 2 18
2.1 泛型 18
2.1.1 示例:泛型誕生前的集合 19
2.1.2 泛型降臨 21
2.1.3 泛型的適用范圍 25
2.1.4 方法類型實參的類型推斷 26
2.1.5 類型約束 28
2.1.6 default運算符和typeof運算符 30
2.1.7 泛型類型初始化與狀態 32
2.2 可空值類型 34
2.2.1 目標:表達信息的缺失 34
2.2.2 CLR和framework的支持:Nullable結構體 35
2.2.3 語言層面支持 38
2.3 簡化委托的創建 43
2.3.1 方法組轉換 43
2.3.2 匿名方法 44
2.3.3 委托的兼容性 45
2.4 迭代器 46
2.4.1 迭代器簡介 47
2.4.2 延遲執行 48
2.4.3 執行yield語句 49
2.4.4 延遲執行的重要性 50
2.4.5 處理finally塊 51
2.4.6 處理finally的重要性 53
2.4.7 迭代器實現機制概覽 54
2.5 一些小的特性 58
2.5.1 局部類型 59
2.5.2 靜態類 60
2.5.3 屬性的getter/setter訪問分離 61
2.5.4 命名空間別名 61
2.5.5 編譯指令 63
2.5.6 固定大小的緩沖區 64
2.5.7 InternalsVisibleTo 65
2.6 小結 65
第3章 C# 3:LINQ及相關特性 66
3.1 自動實現的屬性 66
3.2 隱式類型 67
3.2.1 類型術語 67
3.2.2 隱式類型的局部變量 68
3.2.3 隱式類型的數組 69
3.3 對象和集合的初始化 71
3.3.1 對象初始化器和集合初始化器簡介 71
3.3.2 對象初始化器 72
3.3.3 集合初始化器 74
3.3.4 僅用單一表達式就能完成初始化的好處 75
3.4 匿名類型 76
3.4.1 基本語法和行為 76
3.4.2 編譯器生成類型 78
3.4.3 匿名類型的局限性 79
3.5 lambda表達式 80
3.5.1 lambda表達式語法簡介 81
3.5.2 捕獲變量 82
3.5.3 表達式樹 89
3.6 擴展方法 91
3.6.1 聲明擴展方法 91
3.6.2 調用擴展方法 92
3.6.3 擴展方法的鏈式調用 93
3.7 查詢表達式 94
3.7.1 從C#到C#的查詢表達式轉換 95
3.7.2 范圍變量和隱形標識符 95
3.7.3 選擇使用哪種LINQ語法 96
3.8 終極形態:LINQ 97
3.9 小結 98
第4章 C# 4:互操作性提升 99
4.1 動態類型 99
4.1.1 動態類型介紹 100
4.1.2 超越反射的動態行為 104
4.1.3 動態行為機制速覽 108
4.1.4 動態類型的局限與意外 111
4.1.5 動態類型的使用建議 115
4.2 可選形參和命名實參 116
4.2.1 帶默認值的形參和帶名字的實參 117
4.2.2 如何決定方法調用的含義 118
4.2.3 對版本號的影響 119
4.3 COM互操作性提升 121
4.3.1 鏈接主互操作程序集 121
4.3.2 COM組件中的可選形參 123
4.3.3 命名索引器 124
4.4 泛型型變 125
4.4.1 泛型型變示例 125
4.4.2 接口和委托聲明中的變體語法 126
4.4.3 變體的使用限制 127
4.4.4 泛型型變實例 129
4.5 小結 130
第5章 編寫異步代碼 131
5.1 異步函數簡介 132
5.1.1 異步問題初體驗 133
5.1.2 拆分第 一個例子 134
5.2 對異步模式的思考 135
5.2.1 關于異步執行本質的思考 136
5.2.2 同步上下文 137
5.2.3 異步方法模型 138
5.3 async方法聲明 139
5.3.1 async方法的返回類型 140
5.3.2 async方法的參數 141
5.4 await表達式 141
5.4.1 可等待模式 142
5.4.2 await表達式的限制條件 144
5.5 返回值的封裝 145
5.6 異步方法執行流程 146
5.6.1 await的操作對象與時機 146
5.6.2 await表達式的運算 147
5.6.3 可等待模式成員的使用 150
5.6.4 異常拆封 151
5.6.5 完成方法 152
5.7 異步匿名函數 156
5.8 C# 7自定義task類型 157
5.8.1 99.9%的情況:ValueTask 158
5.8.2 剩下0.1%的情況:創建自定義task類型 160
5.9 C# 7.1中的異步Main方法 161
5.10 使用建議 162
5.10.1 使用ConfigureAwait避免上下文捕獲(擇機使用) 163
5.10.2 啟動多個獨立task以實現并行 164
5.10.3 避免同步代碼和異步代碼混用 165
5.10.4 根據需要提供取消機制 165
5.10.5 測試異步模式 165
5.11 小結 166
第6章 異步原理 167
6.1 生成代碼的結構 168
6.1.1 樁方法:準備和開始第 一步 171
6.1.2 狀態機的結構 172
6.1.3 MoveNext()方法(整體介紹) 175
6.1.4 SetStateMachine方法以及狀態機的裝箱事宜 177
6.2 一個簡單的MoveNext()實現 177
6.2.1 一個完整的具體示例 178
6.2.2 MoveNext()方法的通用結構 179
6.2.3 詳探await表達式 181
6.3 控制流如何影響MoveNext() 183
6.3.1 await表達式之間的控制流很簡單 183
6.3.2 在循環中使用await 184
6.3.3 在try / finally塊中使用await表達式 185
6.4 執行上下文和執行流程 188
6.5 再探自定義task類型 189
6.6 小結 190
第7章 C# 5附加特性 191
7.1 在foreach循環中捕獲變量 191
7.2 調用方信息attribute 193
7.2.1 基本行為 193
7.2.2 日志 194
7.2.3 簡化INotifyPropertyChanged的實現 195
7.2.4 調用方信息attribute的小眾使用場景 196
7.2.5 舊版本.NET使用調用方信息attribute 201
7.3 小結 202
第三部分 C# 6
第8章 極簡屬性和表達式主體成員 204
8.1 屬性簡史 204
8.2 自動實現屬性的升級 206
8.2.1 只讀的自動實現屬性 206
8.2.2 自動實現屬性的初始化 207
8.2.3 結構體中的自動實現屬性 208
8.3 表達式主體成員 210
8.3.1 簡化只讀屬性的計算 210
8.3.2 表達式主體方法、索引器和運算符 213
8.3.3 C# 6中表達式主體成員的限制 214
8.3.4 表達式主體成員使用指南 216
8.4 小結 218
第9章 字符串特性 219
9.1 NET中的字符串格式化回顧 219
9.1.1 簡單字符串格式化 219
9.1.2 使用格式化字符串來實現自定義格式化 220
9.1.3 屬地化 221
9.2 內插字符串字面量介紹 224
9.2.1 簡單內插 224
9.2.2 使用內插字符串字面量格式化字符串 225
9.2.3 內插原義字符串字面量 225
9.2.4 編譯器對內插字符串字面量的處理(第 1部分) 226
9.3 使用FormattableSting實現屬地化 227
9.3.1 編譯器對內插字符串字面量的處理(第 2部分) 228
9.3.2 在特定culture下格式化一個FormattableString 229
9.3.3 FormattableString的其他用途 230
9.3.4 在舊版本.NET中使用FormattableString 233
9.4 使用指南和使用限制 234
9.4.1 適合開發人員和機器,但可能不適合*終用戶 235
9.4.2 關于內插字符串字面量的硬性限制 236
9.4.3 何時可以用但不應該用 238
9.5 使用nameof訪問標識符 239
9.5.1 nameof的第 一個例子 239
9.5.2 nameof的一般用法 241
9.5.3 使用nameof的技巧與陷阱 243
9.6 小結 246
第 10章 簡潔代碼的特性“盛宴” 247
10.1 using static指令 247
10.1.1 引入靜態成員 247
10.1.2 using static與擴展方法 250
10.2 對象初始化器和集合初始化器特性增強 252
10.2.1 對象初始化器中的索引器 252
10.2.2 在集合初始化器中使用擴展方法 256
10.2.3 測試代碼與產品代碼 259
10.3 空值條件運算符 260
10.3.1 簡單、安全地解引用 260
10.3.2 關于空值條件運算符的更多細節 261
10.3.3 處理布爾值比較 262
10.3.4 索引器與空值條件運算符 263
10.3.5 使用空值條件運算符提升編程效率 263
10.3.6 空值條件運算符的局限性 265
10.4 異常過濾器 265
10.4.1 異常過濾器的語法和語義 266
10.4.2 重試操作 270
10.4.3 記錄日志的“副作用” 272
10.4.4 單個、有針對性的日志過濾器 273
10.4.5 為何不直接拋出異!273
10.5 小結 274
第四部分 C# 7及其后續版本
第 11章 使用元組進行組合 277
11.1 元組介紹 277
11.2 元組字面量和元組類型 278
11.2.1 語法 278
11.2.2 元組字面量推斷元素名稱(C# 7.1) 280
11.2.3 元組用作變量的容器 281
11.3 元組類型及其轉換 285
11.3.1 元組字面量的類型 285
11.3.2 從元組字面量到元組類型的轉換 287
11.3.3 元組類型之間的轉換 290
11.3.4 類型轉換的應用 292
11.3.5 繼承時的元素名稱檢查 292
11.3.6 等價運算符與不等價運算符(C# 7.3) 293
11.4 CLR 中的元組 294
11.4.1 引入System.ValueTuple 301
11.5.2 匿名類型 301
11.5.3 命名類型 302
11.6 元組的使用建議 302
11.6.1 非公共API以及易變的代碼 303
11.6.2 局部變量 303
11.6.3 字段 304
11.6.4 元組和動態類型不太搭調 305
11.7 小結 306
第 12章 分解與模式匹配 307
12.1 分解元組 307
12.1.1 分解成新變量 308
12.1.2 通過分解操作為已有變量或者屬性賦值 310
12.1.3 元組字面量分解的細節 313
12.2 非元組類型的分解操作 314
12.2.1 實例分解方法 314
12.2.2 擴展分解方法與重載 315
12.2.3 編譯器對于Deconstruct調用的處理 316
12.3 模式匹配簡介 317
12.4 C# 7.0可用的模式 319
12.4.1 常量模式 319
12.4.2 類型模式 320
12.4.3 var模式 323
12.5 模式匹配與is運算符的搭配使用 324
12.6 在switch語句中使用模式 325
12.6.1 哨兵語句 326
12.6.2 case標簽中的模式變量的作用域 328
12.6.3 基于模式的switch語句的運算順序 329
12.7 對模式特性使用的思考 330
12.7.1 發現分解的時機 330
12.7.2 發現模式匹配的使用時機 331
12.8 小結 331
第 13章 引用傳遞提升執行效率 332
13.1 回顧:ref知多少 333
13.2 ref局部變量和ref return 336
13.2.1 ref局部變量 336
13.2.2 ref return 341
13.2.3 條件運算符 :和ref值(C# 7.2) 343
13.2.4 ref readonly(C# 7.2) 343
13.3 in參數(C# 7.2) 345
13.3.1 兼容性考量 346
13.3.2 in參數驚人的不可變性:外部修改 347
13.3.3 使用in參數進行方法重載 348
13.3.4 in參數的使用指導 348
13.4 將結構體聲明為只讀(C# 7.2) 350
13.4.1 背景:只讀變量的隱式復制 350
13.4.2 結構體的只讀修飾符 352
13.4.3 XML序列化是隱式讀寫屬性 353
13.5 使用ref參數或者in參數的擴展方法(C# 7.2) 354
13.5.1 在擴展方法中使用ref/in參數來規避復制 354
13.5.2 ref和in擴展方法的使用限制 355
13.6 類ref結構體(C# 7.2) 357
13.6.1 類ref結構體的規則 357
13.6.2 Span和棧內存分配 358
13.6.3 類ref結構體的IL表示 362
13.7 小結 362
第 14章 C# 7的代碼簡潔之道 363
14.1 局部方法 363
14.1.1 局部方法中的變量訪問 364
14.1.2 局部方法的實現 367
14.1.3 使用指南 371
14.2 out變量 373
14.2.1 out參數的內聯變量聲明 374
14.2.2 C# 7.3 關于out變量和模式變量解除的限制 374
14.3 數字字面量的改進 375
14.3.1 二進制整型字面量 375
14.3.2 下劃線分隔符 376
14.4 throw表達式 377
14.5 default字面量(C# 7.1) 377
14.6 非尾部命名實參 379
14.7 私有受保護的訪問權限(C# 7.2) 380
14.8 C# 7.3的一些小改進 380
14.8.1 泛型類型約束 381
14.8.2 重載決議改進 381
14.8.3 字段的attribute支持自動實現的屬性 382
14.9 小結 383
第 15章 C# 8及其后續 384
15.1 可空引用類型 384
15.1.1 可空引用類型可以解決什么問題 385
15.1.2 在使用引用類型時改變其含義 385
15.1.3 輸入可空引用類型 387
15.1.4 編譯時和執行期的可空引用類型 387
15.1.5 damnit運算符或者bang運算符 389
15.1.6 可空引用類型遷移的經驗 391
15.1.7 未來的改進 393
15.2 switch表達式 396
15.3 嵌套模式匹配 398
15.3.1 使用模式來匹配屬性 398
15.3.2 分解模式 399
15.3.3 忽略模式中的類型 399
15.4 index和range 400
15.4.1 index與range類型和字面量 401
15.4.2 應用index和range 402
15.5 更多異步集成 403
15.5.1 使用await實現異步資源回收 403
15.5.2 使用foreach await的異步迭代 404
15.5.3 異步迭代器 407
15.6 預覽版中尚未提供的特性 408
15.6.1 默認接口方法 408
15.6.2 記錄類型 409
15.6.3 更多特性 410
15.7 歡迎加入 412
15.8 小結 412
附錄 特性與語言版本對照表 413
展開全部

深入解析C#(第4版) 作者簡介

喬恩·斯基特(Jon Skeet) 谷歌高級軟件工程師,微軟C# MVP,擁有近20年C#項目開發經驗。自2002年來,他一直是C#社區、新聞組、國際會議和Stack Overflow網站中非常活躍的技術專家,回答了數以萬計的C#和.NET相關問題,是Stack Overflow上的傳奇貢獻者。

商品評論(0條)
暫無評論……
書友推薦
本類暢銷
編輯推薦
返回頂部
中圖網
在線客服
主站蜘蛛池模板: 矿用履带式平板车|探水钻机|气动架柱式钻机|架柱式液压回转钻机|履带式钻机-启睿探水钻机厂家 | 北京浩云律师事务所-法律顾问_企业法务_律师顾问_公司顾问 | 不锈钢轴流风机,不锈钢电机-许昌光维防爆电机有限公司(原许昌光维特种电机技术有限公司) | 成都离婚律师|成都结婚律师|成都离婚财产分割律师|成都律师-成都离婚律师网 | 创客匠人-让IP变现不走弯路| 冷凝锅炉_燃气锅炉_工业燃气锅炉改造厂家-北京科诺锅炉 | 圆周直径尺-小孔内视镜-纤维研磨刷-东莞市高腾达精密工具 | 物联网卡_物联网卡购买平台_移动物联网卡办理_移动联通电信流量卡通信模组采购平台? | 电动球阀_不锈钢电动球阀_电动三通球阀_电动调节球阀_上海湖泉阀门有限公司 | 超声波清洗机_超声波清洗机设备_超声波清洗机厂家_鼎泰恒胜 | 玄米影院| 中高频感应加热设备|高频淬火设备|超音频感应加热电源|不锈钢管光亮退火机|真空管烤消设备 - 郑州蓝硕工业炉设备有限公司 | 展厅设计公司,展厅公司,展厅设计,展厅施工,展厅装修,企业展厅,展馆设计公司-深圳广州展厅设计公司 | 九州网址_专注于提供网址大全分享推广中文网站导航服务 | 烟气在线监测系统_烟气在线监测仪_扬尘检测仪_空气质量监测站「山东风途物联网」 | 匀胶机旋涂仪-声扫显微镜-工业水浸超声-安赛斯(北京)科技有限公司 | 郑州外墙清洗_郑州玻璃幕墙清洗_郑州开荒保洁-河南三恒清洗服务有限公司 | 翅片管散热器价格_钢制暖气片报价_钢制板式散热器厂家「河北冀春暖气片有限公司」 | 并网柜,汇流箱,电控设备,中高低压开关柜,电气电力成套设备,PLC控制设备订制厂家,江苏昌伟业新能源科技有限公司 | 能耗监测系统-节能监测系统-能源管理系统-三水智能化 | 精密钢管,冷拔精密无缝钢管,精密钢管厂,精密钢管制造厂家,精密钢管生产厂家,山东精密钢管厂家 | 双工位钻铣攻牙机-转换工作台钻攻中心-钻铣攻牙机一体机-浙江利硕自动化设备有限公司 | 电磁流量计_智能防腐防爆管道式计量表-金湖凯铭仪表有限公司 | 回转窑-水泥|石灰|冶金-巩义市瑞光金属制品有限责任公司 | 包塑软管|金属软管|包塑金属软管-闵彬管业 | 周口风机|周风风机|河南省周口通用风机厂 | 婚博会2024时间表_婚博会门票领取_婚博会地址-婚博会官网 | 骨密度仪-骨密度测定仪-超声骨密度仪-骨龄测定仪-天津开发区圣鸿医疗器械有限公司 | 涂层测厚仪_漆膜仪_光学透过率仪_十大创新厂家-果欧电子科技公司 | 小型气象站_便携式自动气象站_校园气象站-竞道气象设备网 | 3d可视化建模_三维展示_产品3d互动数字营销_三维动画制作_3D虚拟商城 【商迪3D】三维展示服务商 广东健伦体育发展有限公司-体育工程配套及销售运动器材的体育用品服务商 | 衬氟旋塞阀-卡套旋塞阀-中升阀门首页 | 预制舱-电力集装箱预制舱-模块化预制舱生产厂家-腾达电器设备 | IHDW_TOSOKU_NEMICON_EHDW系列电子手轮,HC1系列电子手轮-上海莆林电子设备有限公司 | 恒温恒湿试验箱厂家-高低温试验箱维修价格_东莞环仪仪器_东莞环仪仪器 | 合肥花魁情感婚姻咨询中心_挽回爱情_修复婚姻_恋爱指南 | 猪I型/II型胶原-五克隆合剂-细胞冻存培养基-北京博蕾德科技发展有限公司 | 二氧化碳/活性炭投加系统,次氯酸钠发生器,紫外线消毒设备|广州新奥 | YAGEO国巨电容|贴片电阻|电容价格|三星代理商-深圳市巨优电子有限公司 | 不锈钢管件(不锈钢弯头,不锈钢三通,不锈钢大小头),不锈钢法兰「厂家」-浙江志通管阀 | 物联网卡_物联网卡购买平台_移动物联网卡办理_移动联通电信流量卡通信模组采购平台? |