C# 8.0核心技術指南 C# 8.0 in a Nutshell: The Definitive Reference

Joseph Albahari, Eric Johannsen

買這商品的人也買了...

商品描述

這本暢銷書籍將回答你在C# 8.O或.NET Core學習和開發中遇到的各種問題。
C#語言擁有驚人的靈活性和生命力,它的持續發展也促使我們緊隨其步伐不斷學習。
本書圍繞概念和用例進行組織,不但為中高級程序員提供了簡明的C#和NET知識體系,還進行了一系列深度探索。
從語法和變量到指針、閉包與模式等高級主題緊跟C#的進化速度。
專門使用三章對LINQ進行深度解析。
探索並發和異步編程、高級多線程編程以及並行編程知識。
全面介紹.NET功能,包括正則表達式、網絡編程、序列化、Span、反射以及加密功能。
詳細介紹Roslyn——模塊化的C#編譯器服務。

作者簡介

Joseph Albahari

是C# 8.0 Pocket Reference和LINQ Pocket Reference的作者。
他還是流行的代碼編輯執行和LINQ查詢工具LINQPad的創作者。

目錄大綱

前言1
第1章C#和.NET Core簡介7
1.1面向對象7
1.2類型安全性8
1.3內存管理8
1.4平台支持9
1.5 C#和公共語言運行時9
1.6框架與基礎類庫10
1.7遺留框架和小眾框架11
1.8 Windows Runtime12
1.9 C#簡史14

第2章C#語言基礎26
2.1第一個C#程序26
2.2語法29
2.3類型基礎32
2.4數值類型40
2.5布爾類型和運算符48
2.6字符串和字符49
2.7數組52
2.8變量和參數57
2.9表達式和運算符68
2.10 null運算符72
2.11語句74
2.12命名空間84

第3章在C#中創建類型91
3.1類91
3.2繼承108
3.3 object類型117
3.4結構體120
3.5訪問權限修飾符123
3.6接口125
3.7枚舉類型131
3.8嵌套類型134
3.9泛型136

第4章C#的高級特性149
4.1委託149
4.2事件158
4.3 Lambda表達式164
4.4匿名方法169
4.5 try語句和異常169
4.6枚舉類型和迭代器178
4.7可空值類型183
4.8可空引用類型(C# 8)188
4.9擴展方法191
4.10匿名類型193
4.11組194
4.12模式198
4.13特性202
4.14調用者信息特性204
4.15動態綁定205
4.16運算符重載213
4.17不安全的代碼和指針216
4.18預處理指令220
4.19 XML文檔222

第5章框架概述227
5.1 .NET Standard227
5.2框架與C#語言版本的關係230
5.3參考程序集231
5.4 CLR和BCL231
5.5應用程序框架235

第6章框架基礎239
6.1字符串與文本處理239
6.2日期和時間252
6.3日期和時區259
6.4格式化和解析265
6.5標準格式字符串與解析標記271
6.6其他轉換機制278
6.7全球化282
6.8操作數字283
6.9枚舉287
6.10 Guid結構體290
6.11相等比較291
6.12順序比較301
6.13實用類304

第7章集合309
7.1枚舉309
7.2 ICollection和IList接口316
7.3 Array類320
7.4 List 、Queue、Stack和Set328
7.5字典336
7.6自定義集合與代理342
7.7不可變集合348
7.8擴展相等比較和排序操作351

第8章LINQ查詢359
8.1入門359
8.2流式語法361
8.3查詢表達式367
8.4延遲執行372
8.5子查詢378
8.6構造方式381
8.7映射方式384
8.8解釋型查詢386
8.9 EF Core393
8.10構建查詢表達式404

第9章LINQ運算符409
9.1概述410
9.2篩選413
9.3映射417
9.4連接429
9.5排序437
9.6分組440
9.7集合運算符443
9.8轉換方法444
9.9素運算符447
9.10聚合方法449
9.11量詞運算符453
9.12生成序列的方法455

第10章LINQ to XML456
10.1架構概述456
10.2 X-DOM概述457
10.3實例化X- DOM460
10.4導航和查詢463
10.5更新X-DOM468
10.6使用Value471
10.7文檔和聲明474
10.8名稱和命名空間477
10.9註解483
10.10將數據映射到X-DOM484

第11章其他XML與JSON技術488
11.1 XmlReader488
11.2 XmlWriter496
11.3 XmlReader/XmlWriter的使用模式498
11.4處理JSON502

第12章對象銷毀與垃圾回收509
12.1 IDisposable接口、Dispose方法和Close方法509
12.2自動垃圾回收514
12.3終結器517
12.4垃圾回收器的工作方式521
12.5託管內存洩漏527
12.6弱引用530

第13章診斷534
13.1條件編譯534
13.2 Debug和Trace類537
13.3調試器的集成541
13.4進程與線程處理542
13.5 StackTrace和StackFrame類542
13.6 Windows事件日誌544
13.7性能計數器546
13.8 Stopwatch類551
13.9跨平台診斷工具551

第14章並發與異步556
14.1概述556
14.2線程557
14.3任務572
14.4異步原則580
14.5 C#的異步函數585
14.6異步模式603
14.7舊有的異步編程模式611

第15章流與I/O614
15.1流的架構614
15.2使用流616
15.3流適配器629
15.4壓縮流637
15.5操作ZIP文件640
15.6文件與目錄操作641
15.7在UWP中進行文件I/O操作652
15.8操作系統安全性656
15.9內存映射文件659

第16章網絡663
16.1 .NET網絡架構663
16.2地址與端口665
16.3 URI666
16.4客戶端類668
16.5使用HTTP681
16.6編寫HTTP服務器685
16.7使用FTP687
16.8使用DNS689
16.9通過SmtpClient類發送郵件690
16.10使用TCP691
16.11使用TCP接收POP3郵件694
16.12在UWP中使用TCP696

第17章序列化699
17.1序列化的概念699
17.2 XML序列化器703
17.3 JSON序列化器712
17.4二進制序列化器721
17.5二進制序列化特性723
17.6使用ISerializable接口進行二進制序列化725

第18章程序集729
18.1程序集的組成部分729
18.2強名稱和程序集簽名733
18.3程序集名稱735
18.4認證代碼簽名737
18.5資源和附屬程序集739
18.6程序集的加載、解析與隔離747

第19章反射和數據768
19.1反射和激活類型768
19.2反射和調用成員775
19.3反射程序集788
19.4使用特性789
19.5動態生成代碼794
19.6生成程序集和類型800
19.7生成類型成員803
19.8生成泛型方法和泛型類型809
19.9複雜的生成目標811
19.10解析IL814

第20章動態編程820
20.1動態語言運行時820
20.2數值類型統一822
20.3動態成員重載解析823
20.4實現動態對象828
20.5與動態語言進行互操作832

第21章加密834
21.1概述834
21.2 Windows數據保護835
21.3散列算法836
21.4對稱加密837
21.5公鑰加密和簽名842

第22章高級線程處理846
22.1同步概述846
22.2排他鎖847
22.3鎖和線程安全性855
22.4非排他鎖860
22.5使用事件等待句柄發送信號866
22.6 Barrier類874
22.7延遲初始化875
22.8線程本地存儲877
22.9定時器881

第23章並行編程885
23.1選擇PFX的原因885
23.2 PLINQ888
23.3 Parallel類900
23.4任務並行907
23.5處理AggregateException916
23.6並發集合919
23.7 BlockingCollection類922

第24章Span和Memory926
24.1 Span和切片927
24.2 Memory類930
24.3前向枚舉器931
24.4操作棧分配內存和非託管內存933

第25章原生程序和COM組件互操作性935
25.1調用原生DLL935
25.2類型的封送936
25.3非託管代碼中的回調函數940
25.4模擬C共用體941
25.5共享內存942
25.6將結構體映射到非託管內存944
25.7 COM互操作性948
25.8在C#中調用COM組件950
25.9內嵌互操作類型953
25.10在COM中訪問C#對象954

第26章正則表達式956
26.1正則表達式基礎956
26.2量詞符號961
26.3零寬度斷言962
26.4分組965
26.5替換並分割文本966
26.6正則表達式實例968
26.7正則表達式語言參考971

第27章Roslyn編譯器975
27.1 Roslyn架構975
27.2語法樹976
27.3編譯過程和語義模型991
作者介紹
封面介紹