持续畅销20年的《C#高级编程》出第11版了!
TA是誰?
Wrox精品紅皮書,
引領(lǐng)無數(shù)程序員進(jìn)入程序開發(fā)殿堂,
C#專家級指南,
是經(jīng)驗豐富的程序員提高效率的更快捷方式,
?
連續(xù)暢銷20年,累計銷量超30萬冊。
TA出生名門:
? ? ??
?
?TA戰(zhàn)績輝煌:
2019新的征程:
第11次全新升級,更新至C#7?和?.NET Core 2.0
?
C#?7內(nèi)幕指南,
發(fā)布為NuGet包的每個.NET Core部分都進(jìn)行了更新,
展示如何將.NET引入非微軟平臺,如何操作工具。
TA的行業(yè)贊譽(yù):
目錄(上下滑動顯示更多內(nèi)容)
第 I 部分 C# 語 言
第1 章 .NET 應(yīng)用程序和工具 ? 3
1.1 選擇技術(shù) ? 3
1.2 回顧.NET 歷史 ? 4
1.2.1 C# 1.0——一種新語言 ?4
1.2.2 帶有泛型的C# 2 和.NET 2 ?6
1.2.3 .NET 3.0——Windows Presentation Foundation ? 6
1.2.4 C# 3 和.NET 3.5——LINQ ? 6
1.2.5 C# 4 和.NET 4.0——dynamic 和TPL ? 7
1.2.6 C# 5 和異步編程 ? 7
1.2.7 C# 6 和.NET Core 1.0 ? 8
1.2.8 C# 7 和.NET Core 2.0 ? ?8
1.2.9 選擇技術(shù),繼續(xù)前進(jìn) ? ?9
1.3 .NET 術(shù)語 ? ?10
1.3.1 .NET Framework ? ? ?11
1.3.2 .NET Core ? ? ?11
1.3.3 .NET Standard ? ?11
1.3.4 NuGet 包 ? 12
1.3.5 名稱空間 ? 12
1.3.6 公共語言運(yùn)行庫 ? 13
1.3.7 Windows 運(yùn)行庫 ? 13
1.4 用.NET Core CLI 編譯 ?14
1.4.1 設(shè)置環(huán)境 ? 14
1.4.2 創(chuàng)建應(yīng)用程序 ? 15
1.4.3 構(gòu)建應(yīng)用程序 ? 16
1.4.4 運(yùn)行應(yīng)用程序 ? 16
1.4.5 創(chuàng)建Web 應(yīng)用程序 ? 17
1.4.6 發(fā)布應(yīng)用程序 ? 17
1.5 使用Visual Studio 2017 ? 19
1.6 應(yīng)用程序類型和技術(shù) ? 24
1.6.1 數(shù)據(jù)訪問 ? 24
1.6.2 Windows 應(yīng)用程序 ? 24
1.6.3 Xamarin ? ?24
1.6.4 Web 應(yīng)用程序 ? ?25
1.6.5 Web API ? ? 25
1.6.6 WebHooks 和SignalR ? 25
1.6.7 Microsoft Azure ? ? 25
1.7 開發(fā)工具 ? ?26
1.7.1 Visual Studio Community ? 27
1.7.2 Visual Studio Professional ? 27
1.7.3 Visual Studio Enterprise ? 27
1.7.4 Visual Studio for Mac ? 27
1.7.5 Visual Studio Code ? 27
1.8 小結(jié) ? ?27
第2 章 核心C# ? 29
2.1 C#基礎(chǔ) ? ? 29
2.2 變量 ? ?31
2.2.1 初始化變量 ? ?31
2.2.2 類型推斷 ? ?32
2.2.3 變量的作用域 ? ?33
2.2.4 常量 ? ?34
2.3 預(yù)定義數(shù)據(jù)類型 ? ? 35
2.3.1 值類型和引用類型 ? ?35
2.3.2 .NET 類型 ? ? 36
2.3.3 預(yù)定義的值類型 ? ?36
2.3.4 預(yù)定義的引用類型 ? 40
2.4 程序流控制 ? ?42
2.4.1 條件語句 ? ?42
2.4.2 循環(huán) ? ?44
2.4.3 跳轉(zhuǎn)語句 ? ?47
2.5 名稱空間 ? ?47
2.5.1 using 語句 ? ?48
2.5.2 名稱空間的別名 ? ?49
2.6 Main()方法 ? ?49
2.7 使用注釋 ? ?50
2.7.1 源文件中的內(nèi)部注釋 ? 50
2.7.2 XML 文檔 ? ? 51
2.8 C#預(yù)處理器指令 ? ?52
2.8.1 #define 和#undef ? ?52
2.8.2 #if、#elif、#else 和#endif ? ?52
2.8.3 #warning 和 # error ? ?53
2.8.4 #region 和#endregion ? 53
2.8.5 #line ? ? 53
2.8.6 #pragma ? ? 54
2.9 C#編程準(zhǔn)則 ? ?54
2.9.1 關(guān)于標(biāo)識符的規(guī)則 ? ?54
2.9.2 用法約定 ? ?55
2.10 小結(jié) ? ? ? 58
第3 章 對象和類型 ? 59
3.1 創(chuàng)建及使用類 ? ? 60
3.2 類和結(jié)構(gòu) ? ?60
3.3 類 ? ?61
3.3.1 字段 ? ?61
3.3.2 只讀字段 ? ?61
3.3.3 屬性 ? ?62
3.3.4 匿名類型 ? ?65
3.3.5 方法 ? ?66
3.3.6 構(gòu)造函數(shù) ? ?69
3.4 結(jié)構(gòu) ? ?73
3.4.1 結(jié)構(gòu)是值類型 ? ? 74
3.4.2 只讀結(jié)構(gòu) ? ?75
3.4.3 結(jié)構(gòu)和繼承 ? ?75
3.4.4 結(jié)構(gòu)的構(gòu)造函數(shù) ? ?75
3.4.5 ref 結(jié)構(gòu) ? ? 76
3.5 按值和按引用傳遞參數(shù) ? 76
3.5.1 ref 參數(shù) ? ? 77
3.5.2 out 參數(shù) ? ?77
3.5.3 in 參數(shù) ? ?78
3.6 可空類型 ? ?79
3.7 枚舉類型 ? ?79
3.8 部分類 ? ? 81
3.9 擴(kuò)展方法 ? ?83
3.10 Object 類 ? ?83
3.11 小結(jié) ? ?84
第4 章 繼承 ? 85
4.1 面向?qū)ο?? ?85
4.2 繼承的類型 ? ?85
4.2.1 多重繼承 ? ?86
4.2.2 結(jié)構(gòu)和類 ? ?86
4.3 實(shí)現(xiàn)繼承 ? ?86
4.3.1 虛方法 ? ?87
4.3.2 多態(tài)性 ? ?88
4.3.3 隱藏方法 ? ?89
4.3.4 調(diào)用方法的基類版本 ? ?90
4.3.5 抽象類和抽象方法 ? 90
4.3.6 密封類和密封方法 ? 91
4.3.7 派生類的構(gòu)造函數(shù) ? 91
4.4 修飾符 ? ? ?93
4.4.1 訪問修飾符 ? ? 93
4.4.2 其他修飾符 ? ? 94
4.5 接口 ? ?94
4.5.1 定義和實(shí)現(xiàn)接口 ? ? 95
4.5.2 派生的接口 ? ? 97
4.6 is 和as 運(yùn)算符 ? ?98
4.7 小結(jié) ? ?99
第5 章 泛型 ? ?100
5.1 泛型概述 ? ? 100
5.1.1 性能 ? ?101
5.1.2 類型安全 ? ?102
5.1.3 二進(jìn)制代碼的重用 ? ?102
5.1.4 代碼的擴(kuò)展 ? ?102
5.1.5 命名約定 ? ?102
5.2 創(chuàng)建泛型類 ? ?103
5.3 泛型類的功能 ? ?105
5.3.1 默認(rèn)值 ? ?106
5.3.2 約束 ? ?106
5.3.3 繼承 ? ?108
5.3.4 靜態(tài)成員 ? ?108
5.4 泛型接口 ? ? 109
5.4.1 協(xié)變和抗變 ? ?109
5.4.2 泛型接口的協(xié)變 ? 110
5.4.3 泛型接口的抗變 ? 111
5.5 泛型結(jié)構(gòu) ? 111
5.6 泛型方法 ? 113
5.6.1 泛型方法示例 ? 113
5.6.2 帶約束的泛型方法 ? ?114
5.6.3 帶委托的泛型方法 ? ?115
5.6.4 泛型方法規(guī)范 ? ? ? 115
5.7 小結(jié) ? ?116
第6 章 運(yùn)算符和類型強(qiáng)制轉(zhuǎn)換 ? 117
6.1 運(yùn)算符和類型轉(zhuǎn)換 ? ?117
6.2 運(yùn)算符 ? 118
6.2.1 運(yùn)算符的簡化操作 ? ? ?119
6.2.2 運(yùn)算符的優(yōu)先級和關(guān)聯(lián)性 ? ? 125
6.3 使用二進(jìn)制運(yùn)算符 ? ? ? ?126
6.3.1 位的移動 ? ? ? ? ? ?128
6.3.2 有符號數(shù)和無符號數(shù) ? ?128
6.4 類型的安全性 ? ? ? 129
6.4.1 類型轉(zhuǎn)換 ? ? ? ? ? 130
6.4.2 裝箱和拆箱 ? ? ? ? 132
6.5 比較對象的相等性 ? ?133
6.5.1 比較引用類型的相等性 ? 133
6.5.2 比較值類型的相等性 ? ? 134
6.6 運(yùn)算符重載 ? ? ? ?135
6.6.1 運(yùn)算符的工作方式 ? ? ? 135
6.6.2 運(yùn)算符重載的示例:Vector 結(jié)構(gòu) ? ? 136
6.6.3 比較運(yùn)算符的重載 ? ? ? 139
6.6.4 可以重載的運(yùn)算符 ? ? ? 140
6.7 實(shí)現(xiàn)自定義的索引運(yùn)算符 ? ? 141
6.8 用戶定義的類型強(qiáng)制轉(zhuǎn)換 ? ? 142
6.8.1 實(shí)現(xiàn)用戶定義的類型強(qiáng)制轉(zhuǎn)換 ? ? 143
6.8.2 多重類型強(qiáng)制轉(zhuǎn)換 ? ? ? 147
6.9 小結(jié) ? ? ? 150
第7 章 數(shù)組 ? ? 151
7.1 相同類型的多個對象 ? ?151
7.2 簡單數(shù)組 ? 152
7.2.1 數(shù)組的聲明 ? 152
7.2.2 數(shù)組的初始化 ? 152
7.2.3 訪問數(shù)組元素 ? 153
7.2.4 使用引用類型 ? 153
7.3 多維數(shù)組 ? 154
7.4 鋸齒數(shù)組 ? 155
7.5 Array 類 ? 156
7.5.1 創(chuàng)建數(shù)組 ? 156
7.5.2 復(fù)制數(shù)組 ? 156
7.5.3 排序 ? ? ?157
7.6 數(shù)組作為參數(shù) ? 159
7.7 數(shù)組協(xié)變 ? 159
7.8 枚舉 ? 160
7.8.1 IEnumerator 接口 ? ? 160
7.8.2 foreach 語句 ? ? 160
7.8.3 yield 語句 ? 161
7.9 結(jié)構(gòu)比較 ? 164
7.10 Span ? ? ?165
7.10.1 創(chuàng)建切片 ? 166
7.10.2 使用Span 改變值 ? ?166
7.10.3 只讀的Span ? ?167
7.11 數(shù)組池 ? ? 167
7.11.1 創(chuàng)建數(shù)組池 ? ? 168
7.11.2 從池中租用內(nèi)存 ? ?168
7.11.3 將內(nèi)存返回給池 ? ?168
7.12 小結(jié) ? ? ? 169
第8 章 委托、lambda 表達(dá)式和事件 ? ?170
8.1 引用方法 ? ? ? ?170
8.2 委托 ? ?170
8.2.1 聲明委托 ? ?171
8.2.2 使用委托 ? ?172
8.2.3 簡單的委托示例 ? ?174
8.2.4 Action<T>和Func<T>委托 ? ? 175
8.2.5 BubbleSorter 示例 ? ? ?176
8.2.6 多播委托 ? ?177
8.2.7 匿名方法 ? ?180
8.3 lambda 表達(dá)式 ? ?181
8.3.1 參數(shù) ? ? ?181
8.3.2 多行代碼 ? ?181
8.3.3 閉包 ? ? 182
8.4 事件 ? ? 182
8.4.1 事件發(fā)布程序 ? ?182
8.4.2 事件偵聽器 ? ?184
8.5 小結(jié) ? ?185
第9 章 字符串和正則表達(dá)式 186
9.1 System.String 類 ? ?187
9.1.1 構(gòu)建字符串 ? ?188
9.1.2 StringBuilder 成員 ? 190
9.2 字符串格式 ? ? ? 190
9.2.1 字符串插值 ? ? ? ?191
9.2.2 日期時間和數(shù)字的格式 ? ?192
9.2.3 自定義字符串格式 ? ? 193
9.3 正則表達(dá)式 ? ? ?194
9.3.1 正則表達(dá)式概述 ? ?194
9.3.2 RegularExpressionsPlayground 示例 ? ?195
9.3.3 顯示結(jié)果 ? ?197
9.3.4 匹配、組和捕獲 ? ?198
9.4 字符串和Span ? ?200
9.5 小結(jié) ? ?201
第10 章 集合 ? ? 202
10.1 概述 ? ? 202
10.2 集合接口和類型 ? ?203
10.3 列表 ? ? 203
10.3.1 創(chuàng)建列表 ? ?204
10.3.2 只讀集合 ? ?210
10.4 隊列 ? ? 210
10.5 棧 ? ?213
10.6 鏈表 ? ? 214
10.7 有序列表 ? ?217
10.8 字典 ? ? 219
10.8.1 字典初始化器 ? 219
10.8.2 鍵的類型 ? ?219
10.8.3 字典示例 ? ?220
10.8.4 Lookup 類 ? ?223
10.8.5 有序字典 ? ?223
10.9 集 ? ?224
10.10 性能 ? ?225
10.11 小結(jié) ? ?227
第11 章 特殊的集合 ? 228
11.1 概述 ? ? 228
11.2 處理位 ? ?228
11.2.1 BitArray 類 ? ?229
11.2.2 BitVector32 結(jié)構(gòu) ? 230
11.3 可觀察的集合 ? ? 232
11.4 不變的集合 ? ? 233
11.4.1 使用構(gòu)建器和不變的集合 ? ?235
11.4.2 不變集合類型和接口 ? ? ?235
11.4.3 使用LINQ 和不變的數(shù)組 ? 236
11.5 并發(fā)集合 ? ?236
11.5.1 創(chuàng)建管道 ? ?237
11.5.2 使用BlockingCollection ? 239
11.5.3 使用ConcurrentDictionary ? 240
11.5.4 完成管道 ? ?241
11.6 小結(jié) ? ? 242
第12 章 LINQ ? 243
12.1 LINQ 概述 ? ?243
12.1.1 列表和實(shí)體 ? ?244
12.1.2 LINQ 查詢 ? ?246
12.1.3 擴(kuò)展方法 ? ?246
12.1.4 推遲查詢的執(zhí)行 ? ?248
12.2 標(biāo)準(zhǔn)的查詢操作符 249
12.2.1 篩選 ? ?250
12.2.2 用索引篩選 ? ?251
12.2.3 類型篩選 ? ?252
12.2.4 復(fù)合的from 子句 ? 252
12.2.5 排序 ? ?253
12.2.6 分組 ? ?254
12.2.7 LINQ 查詢中的變量 ? ? 255
12.2.8 對嵌套的對象分組 ? ? ?255
12.2.9 內(nèi)連接 ? ? ?256
12.2.10 左外連接 ? ? 258
12.2.11 組連接 ? ? ?260
12.2.12 集合操作 ? ? 262
12.2.13 合并 ? ? 263
12.2.14 分區(qū) ? ? 264
12.2.15 聚合操作符 ? ?264
12.2.16 轉(zhuǎn)換操作符 ? ?266
12.2.17 生成操作符 ? ?267
12.3 并行LINQ ? ? 267
12.3.1 并行查詢 ? ?268
12.3.2 分區(qū)器 ? ?268
12.3.3 取消 ? ?269
12.4 表達(dá)式樹 ? ?269
12.5 LINQ 提供程序 ? ? 271
12.6 小結(jié) ? ? 272
第13 章 C#函數(shù)式編程 ? 273
13.1 概述 ? ? 273
13.1.1 避免狀態(tài)突變 ? ? 274
13.1.2 函數(shù)作為第一個類 ? ? 275
13.2 表達(dá)式體的成員 ? ?275
13.3 擴(kuò)展方法 ? ?276
13.4 using static 聲明 ? ? 277
13.5 本地函數(shù) ? ?278
13.5.1 本地函數(shù)與yield 語句 ? ?279
13.5.2 遞歸本地函數(shù) ? ? 281
13.6 元組 ? ? ?282
13.6.1 元組的聲明和初始化 ? ?282
13.6.2 元組解構(gòu) ? ?283
13.6.3 元組的返回 ? ?283
13.6.4 幕后的原理 ? ?284
13.6.5 ValueTuple 與元組的兼容性 ? ?285
13.6.6 推斷出元組名稱 ? ? 285
13.6.7 元組與鏈表 ? ?286
13.6.8 元組和LINQ ? ?286
13.6.9 解構(gòu) ? ?287
13.6.10 解構(gòu)與擴(kuò)展方法 ? ?288
13.7 模式匹配 ? ? ? ?288
13.7.1 模式匹配與is 運(yùn)算符 ? ?288
13.7.2 模式匹配與switch 語句 ? 290
13.7.3 模式匹配與泛型 ? ? ?291
13.8 小結(jié) ? ?291
第14 章 錯誤和異常 ? ? 292
14.1 簡介 ? ?292
14.2 異常類 ? 293
14.3 捕獲異常 ? 294
14.3.1 異常和性能 ? 296
14.3.2 實(shí)現(xiàn)多個catch 塊 ? ?296
14.3.3 在其他代碼中捕獲異常 ? ?299
14.3.4 System.Exception 屬性 ? ?299
14.3.5 異常過濾器 ? ? ? ?299
14.3.6 重新拋出異常 ? ? ? 300
14.3.7 沒有處理異常時發(fā)生的情況 ? ? 303
14.4 用戶定義的異常類 ? ? 303
14.4.1 捕獲用戶定義的異常 ? ? ?304
14.4.2 拋出用戶定義的異常 ? ? ?305
14.4.3 定義用戶定義的異常類 ? ?307
14.5 調(diào)用者信息 ? ? ? ?309
14.6 小結(jié) ? ?310
第15 章 異步編程 ? ? ?311
15.1 異步編程的重要性 ? 311
15.2 異步編程的.NET 歷史 ? ?312
15.2.1 同步調(diào)用 ? ? ?312
15.2.2 異步模式 ? ? ?313
15.2.3 基于事件的異步模式 ? ? 314
15.2.4 基于任務(wù)的異步模式 ? ? 314
15.2.5 異步Main()方法 ? ? 315
15.3 異步編程的基礎(chǔ) ? 315
15.3.1 創(chuàng)建任務(wù) ? 316
15.3.2 調(diào)用異步方法 ? ? 316
15.3.3 使用Awaiter ? ? ?317
15.3.4 延續(xù)任務(wù) ? 317
15.3.5 同步上下文 ? 318
15.3.6 使用多個異步方法 ? ?318
15.3.7 使用ValueTasks ? ? 319
15.3.8 轉(zhuǎn)換異步模式 ? ? ?320
15.4 錯誤處理 ? ? ? 320
15.4.1 異步方法的異常處理 ? ? 321
15.4.2 多個異步方法的異常處理 ? ?321
15.4.3 使用AggregateException 信息 ? 322
15.5 異步與Windows 應(yīng)用程序 ? 322
15.5.1 配置await ? ? 323
15.5.2 切換到UI 線程 ? ? 324
15.5.3 使用IAsyncOperation ? 325
15.5.4 避免阻塞情況 ? ? ?325
15.6 小結(jié) ? ? ? 325
第16 章 反射、元數(shù)據(jù)和動態(tài)編程 ? ?326
16.1 在運(yùn)行期間檢查代碼和動態(tài)編程 ? 326
16.2 自定義特性 ? ? ? 327
16.2.1 編寫自定義特性 ? ? 327
16.2.2 自定義特性示例:WhatsNewAttributes ? 330
16.3 反射 ? ? 331
16.3.1 System.Type 類 ? ?332
16.3.2 TypeView 示例 ? ?333
16.3.3 Assembly 類 ? ? ?335
16.3.4 完成WhatsNewAttributes 示例 ? ?336
16.4 為反射使用動態(tài)語言擴(kuò)展 ? ? 339
16.4.1 創(chuàng)建Calculator 庫 ? ?339
16.4.2 動態(tài)實(shí)例化類型 ? ? 339
16.4.3 用Reflection API 調(diào)用成員 ? ?340
16.4.4 使用動態(tài)類型調(diào)用成員 ? ?340
16.5 dynamic 類型 ? ?341
16.6 DynamicObject 和ExpandoObject概述 ? ?344
16.6.1 DynamicObject ? 344
16.6.2 ExpandoObject ? ?345
16.7 小結(jié) ? ? 347
第17 章 托管和非托管內(nèi)存 ? 348
17.1 內(nèi)存 ? ? 348
17.2 后臺內(nèi)存管理 ? ? 349
17.2.1 值數(shù)據(jù)類型 ? ?349
17.2.2 引用數(shù)據(jù)類型 ? 350
17.2.3 垃圾收集 ? ? ? 352
17.3 強(qiáng)引用和弱引用 ? ?354
17.4 處理非托管的資源 ?354
17.4.1 析構(gòu)函數(shù)或終結(jié)器 ? ? 355
17.4.2 IDisposable 接口 ? ? 356
17.4.3 using 語句 ? ? ? ?356
17.4.4 實(shí)現(xiàn)IDisposable 接口和析構(gòu)函數(shù) ? ?357
17.4.5 IDisposable 和終結(jié)器的規(guī)則 ? ? 358
17.5 不安全的代碼 ? ? ?358
17.5.1 用指針直接訪問內(nèi)存 ? ?358
17.5.2 指針示例:PointerPlayground ? 364
17.5.3 使用指針優(yōu)化性能 ? ? ?367
17.6 引用的語義 ? ? 369
17.6.1 傳遞ref 和返回ref ? ?371
17.6.2 ref 和數(shù)組 ? ? 371
17.7 Span<T> ? ? 373
17.7.1 Span 引用托管堆 ? 373
17.7.2 Span 引用棧 ? ? ? 373
17.7.3 Span 引用本機(jī)堆 ? ?374
17.7.4 Span 擴(kuò)展方法 ? ? ?374
17.8 平臺調(diào)用 ? ? ?375
17.9 小結(jié) ? ? ? ?378
第18 章 Visual Studio 2017 ? ? 379
18.1 使用Visual Studio 2017 ? ? 379
18.1.1 Visual Studio 的版本 ? ? ? 382
18.1.2 Visual Studio 設(shè)置 ? ? ? ?382
18.2 創(chuàng)建項目 ? ? ? ? ? ? 383
18.2.1 面向多個版本的.NET ? ? 384
18.2.2 選擇項目類型 ? ? ? ? 385
18.3 瀏覽并編寫項目 ? ? ?388
18.3.1 Solution Explorer ? ? 388
18.3.2 使用代碼編輯器 ? ? 394
18.3.3 學(xué)習(xí)和理解其他窗口 ? 399
18.3.4 排列窗口 ? ? ?402
18.4 構(gòu)建項目 ? ? 402
18.4.1 構(gòu)建、編譯和生成代碼 ? ?403
18.4.2 調(diào)試版本和發(fā)布版本 ? ? 403
18.4.3 選擇配置 ? ? 404
18.4.4 編輯配置 ? ? 404
18.5 調(diào)試代碼 ? ? 406
18.5.1 設(shè)置斷點(diǎn) ? ? 407
18.5.2 使用數(shù)據(jù)提示和調(diào)試器可視化工具 ? ?407
18.5.3 Live Visual Tree ? ? 408
18.5.4 監(jiān)視和修改變量 ? ? 409
18.5.5 異常 ? ? ?409
18.5.6 多線程 ? ?410
18.6 重構(gòu)工具 ? ?411
18.7 診斷工具 ? ?412
18.8 通過Docker 創(chuàng)建和使用容器 ? ?415
18.8.1 Docker 簡介 ? ?416
18.8.2 在Docker 容器中運(yùn)行ASP .NET Core ? 416
18.8.3 創(chuàng)建Dockerfile ? ?417
18.8.4 使用Visual Studio ? ?418
18.9 小結(jié) ? ? 420
第II 部分 .NET Core 與Windows Runtime
第19 章 庫、程序集、包和NuGet ? ? ?423
19.1 庫的地獄 ? ?423
19.2 程序集 ? ?425
19.3 創(chuàng)建庫 ? ?426
19.3.1 .NET 標(biāo)準(zhǔn) ? ?427
19.3.2 創(chuàng)建.NET 標(biāo)準(zhǔn)庫 ? ?428
19.3.3 解決方案文件 ? ? 428
19.3.4 引用項目 ? ? ? 429
19.3.5 引用NuGet 包 ? ?429
19.3.6 NuGet 的來源 ? ? 430
19.3.7 使用.NET Framework 庫 ? ?431
19.4 使用共享項目 ? ? ? 433
19.5 創(chuàng)建NuGet 包 ? ? ? 435
19.5.1 NuGet 包和命令行 ? ? ?435
19.5.2 支持多個平臺 ? ? ? ? 435
19.5.3 NuGet 包與Visual Studio ? 436
19.6 小結(jié) ? ? 438
第20 章 依賴注入 ? 439
20.1 依賴注入的概念 ? ?439
20.1.1 使用沒有依賴注入的服務(wù) ? ?440
20.1.2 使用依賴注入 ? ? ? ?441
20.2 使用.NET Core DI 容器 ? 442
20.3 服務(wù)的生命周期 ? ?443
20.3.1 使用單例和臨時服務(wù) ? 445
20.3.2 使用Scoped 服務(wù) ? ? ?446
20.3.3 使用自定義工廠 ? ? ?448
20.4 使用選項初始化服務(wù) ? 449
20.5 使用配置文件 ? ? ?450
20.6 創(chuàng)建平臺獨(dú)立性 ? ?452
20.6.1 .NET 標(biāo)準(zhǔn)庫 ? ? ? ? 452
20.6.2 WPF 應(yīng)用程序 ? ? ? 453
20.6.3 UWP 應(yīng)用程序 ? ? ? 454
20.6.4 Xamarin 應(yīng)用程序 ? ? 455
20.7 使用其他DI 容器 ? ?456
20.8 小結(jié) ? ? ? ? ? ? ? ?457
第21 章 任務(wù)和并行編程 ? 458
21.1 概述 ? ? ? ? ? ? ? 459
21.2 Parallel 類 ? ? ? ? ? ?460
21.2.1 使用Parallel.For()方法循環(huán) ? 460
21.2.2 提前中斷Parallel.For ? ? ?462
21.2.3 Parallel.For()方法的初始化 ? ?462
21.2.4 使用Parallel.ForEach()方法循環(huán) ? ?463
21.2.5 通過Parallel.Invoke()方法調(diào)用多個方法 ? 464
21.3 任務(wù) ? ? ? 464
21.3.1 啟動任務(wù) ? 464
21.3.2 Future——任務(wù)的結(jié)果 ? ? 466
21.3.3 連續(xù)的任務(wù) ? ? ?467
21.3.4 任務(wù)層次結(jié)構(gòu) ? ? 468
21.3.5 從方法中返回任務(wù) ? ?468
21.3.6 等待任務(wù) ? ? 468
21.4 取消架構(gòu) ? ? 470
21.4.1 Parallel.For()方法的取消 ? ? 470
21.4.2 任務(wù)的取消 ? ? ? 471
21.5 數(shù)據(jù)流 ? ? ? 472
21.5.1 使用動作塊 ? ?472
21.5.2 源和目標(biāo)數(shù)據(jù)塊 ? ? 473
21.5.3 連接塊 ? ? 474
21.6 Timer 類 ? ?475
21.7 線程問題 ? ?477
21.7.1 爭用條件 ? ?477
21.7.2 死鎖 ? ? ? 479
21.8 lock 語句和線程安全 ? ?480
21.9 Interlocked 類 ? ?483
21.10 Monitor 類 ? ? ?484
21.11 SpinLock 結(jié)構(gòu) ? ?485
21.12 WaitHandle 基類 ? ?485
21.13 Mutex 類 ? ?485
21.14 Semaphore 類 ? ?486
21.15 Events 類 ? ?487
21.16 Barrier 類 ? ?490
21.17 ReaderWriterLockSlim 類 ? ?492
21.18 Lock 和await ? 494
21.19 小結(jié) ? ? ? ? ? 496
第22 章 文件和流 ? ?497
22.1 概述 ? ? ? ? ? ?498
22.2 管理文件系統(tǒng) ? ?498
22.2.1 檢查驅(qū)動器信息 ? ?499
22.2.2 使用Path 類 ? ? ? 500
22.2.3 創(chuàng)建文件和文件夾 ? 500
22.2.4 訪問和修改文件屬性 ? ?501
22.2.5 使用File 執(zhí)行讀寫操作 ? 502
22.3 枚舉文件 ? ? ? ? ? ?503
22.4 使用流 ? ? ? ? ? ? ? 504
22.4.1 使用文件流 ? ? ? 505
22.4.2 讀取流 ? ? ? ? ?508
22.4.3 寫入流 ? ? ? ? ?508
22.4.4 復(fù)制流 ? ? ? ? ?509
22.4.5 隨機(jī)訪問流 ? ? ? 509
22.4.6 使用緩存的流 ? ? 510
22.5 使用讀取器和寫入器 ? ? ? ? ? ? ? 511
22.5.1 StreamReader 類 ? ?511
22.5.2 StreamWriter 類 ? ?512
22.5.3 讀寫二進(jìn)制文件 ? ?512
22.6 壓縮文件 ? ? ? ? ? ? 513
22.6.1 使用壓縮流 ? ? ? 514
22.6.2 使用Brotli ? ? ? ?514
22.6.3 壓縮文件 ? ? ? ? 515
22.7 觀察文件的更改 ? ? ? 515
22.8 使用內(nèi)存映射的文件 ? ? ? ? ? ? ? 516
22.8.1 使用訪問器創(chuàng)建內(nèi)存映射文件 ? ? ?517
22.8.2 使用流創(chuàng)建內(nèi)存映射文件 ? ? ? ? 518
22.9 使用管道通信 ? ? ? ? 520
22.9.1 創(chuàng)建命名管道服務(wù)器 ? ? ? ? ? ?520
22.9.2 創(chuàng)建命名管道客戶端 ? ? ? ? ? ?521
22.9.3 創(chuàng)建匿名管道 ? ? 522
22.10 通過Windows 運(yùn)行庫使用文件和流 ? ? ? ? ? ?523
22.10.1 Windows App 編輯器 ? ? ? ? ?523
22.10.2 把Windows Runtime 類型映射為.NET 類型 ? ? ?525
22.11 小結(jié) ? ? ? ? ? ? ? ?526
第23 章 網(wǎng)絡(luò) ? ? ? ? ? ? ? ? 527
23.1 概述 ? ? ? ? ? ? ? ? 527
23.2 HttpClient 類 ? ? ? ? ?528
23.2.1 發(fā)出異步的Get 請求 ? ? ? ? ? ?528
23.2.2 拋出異常 ? ? ? ? 529
23.2.3 傳遞標(biāo)題 ? ? ? ? 529
23.2.4 訪問內(nèi)容 ? ? ? ? 531
23.2.5 用HttpMessageHandler 自定義請求 ? 531
23.2.6 使用SendAsync 創(chuàng)建HttpRequestMessage ? ? ? ? ? ? ?532
23.2.7 使用HttpClient和Windows Runtime ? ?532
23.3 使用WebListener 類 ? ?534
23.4 使用實(shí)用工具類 ? ? ? 536
23.4.1 URI ? ? ? ? ? ? 537
23.4.2 IPAddress ? ? ? ? 538
23.4.3 IPHostEntry ? ? ? ?538
23.4.4 Dns ? ? ? ? ? ? 539
23.5 使用TCP ? ? ? ? ? ? 540
23.5.1 使用TCP 創(chuàng)建HTTP 客戶程序 ? ? 540
23.5.2 創(chuàng)建TCP 偵聽器 ? ? ? ? ? ? ? 541
23.5.3 創(chuàng)建TCP 客戶端 ? ? ? ? ? ? ? 547
23.5.4 TCP 和UDP ? ? ? 550
23.6 使用UDP ? ? ? ? ? ? 550
23.6.1 建立UDP 接收器 ? ? ? ? ? ? ?550
23.6.2 創(chuàng)建UDP 發(fā)送器 ? ? ? ? ? ? ?551
23.6.3 使用多播 ? ? ? ? 553
23.7 使用套接字 ? ? ? ? ? 554
23.7.1 使用套接字創(chuàng)建偵聽器 ? ? ? ? ?554
23.7.2 使用NetworkStream 和套接字 ? ? ?556
23.7.3 通過套接字使用讀取器和寫入器 ? ?557
23.7.4 使用套接字實(shí)現(xiàn)接收器 ? ? ? ? ?557
23.8 小結(jié) ? ? ? ? ? ? ? ? 559
第24 章 安全性 ? ? ? ? ? ? ?560
24.1 概述 ? ? ? ? ? ? ? ? 560
24.2 驗證用戶信息 ? ? ? ? 561
24.2.1 使用Windows 標(biāo)識 ? ? ? ? ? ?561
24.2.2 Windows Principal ? ? ? ? ? ? ?562
24.2.3 使用聲稱 ? ? ? ? 562
24.3 加密數(shù)據(jù) ? ? ? ? ? ? 564
24.3.1 創(chuàng)建和驗證簽名 ? ?565
24.3.2 實(shí)現(xiàn)安全的數(shù)據(jù)交換 ? ? ? ? ? ?567
24.3.3 使用RSA 簽名和散列 ? ? ? ? ? 569
24.4 保護(hù)數(shù)據(jù) ? ? ? ? ? ? 571
24.4.1 實(shí)現(xiàn)數(shù)據(jù)保護(hù) ? ? 571
24.4.2 用戶機(jī)密 ? ? ? ? 573
24.5 資源的訪問控制 ? ? ? 575
24.6 Web 安全性 ? ? ? ? ? 577
24.6.1 編碼 ? ? ? ? ? ?577
24.6.2 SQL 注入 ? ? ? ?579
24.6.3 跨站點(diǎn)請求偽造 ? ?580
24.7 小結(jié) ? ? ? ? ? ? ? ? 581
第25 章 ADO.NET 和事務(wù) ? ? 582
25.1 ADO.NET 概述 ? ? ? ?582
25.1.1 示例數(shù)據(jù)庫 ? ? ? 583
25.1.2 NuGet 包和名稱空間 ? ? ? ? ? ?583
25.2 使用數(shù)據(jù)庫連接 ? ? ? 584
25.2.1 管理連接字符串 ? ?585
25.2.2 連接池 ? ? ? ? ?585
25.2.3 連接信息 ? ? ? ?585
25.3 命令 ? ? ? ? ? ? ? ? 587
25.3.1 ExecuteNonQuery()方法 ? ? ? ? ?587
25.3.2 ExecuteScalar()方法 ? ? ? ? ? ? 588
25.3.3 ExecuteReader()方法 ? ? ? ? ? ?589
25.3.4 調(diào)用存儲過程 ? ? 590
25.4 異步數(shù)據(jù)訪問 ? ? ? ? 591
25.5 事務(wù) ? ? ? ? ? ? ? ? 592
25.6 事務(wù)和System.Transaction ? ? ? ? ? 595
25.6.1 可提交的事務(wù) ? ? 597
25.6.2 依賴事務(wù) ? ? ? ?598
25.6.3 環(huán)境事務(wù) ? ? ? ?599
25.6.4 嵌套作用域和環(huán)境事務(wù) ? ? ? ? ?601
25.7 小結(jié) ? ? ? ? ? ? ? ? 602
第26 章 Entity Framework Core ? ? ? ? ? 604
26.1 Entity Framework 簡史 ? ? ? ? ? ? ?605
26.2 EF Core 簡介 ? ? ? ? ?606
26.2.1 創(chuàng)建模型 ? ? ? ?607
26.2.2 約定、注釋和流利API ? ? ? ? ? 607
26.2.3 創(chuàng)建上下文 ? ? ? 608
26.2.4 創(chuàng)建數(shù)據(jù)庫 ? ? ? 608
26.2.5 刪除數(shù)據(jù)庫 ? ? ? 609
26.2.6 寫入數(shù)據(jù)庫 ? ? ? 609
26.2.7 讀取數(shù)據(jù)庫 ? ? ? 610
26.2.8 更新記錄 ? ? ? ?610
26.2.9 刪除記錄 ? ? ? ?611
26.2.10 日志記錄 ? ? ? 611
26.3 使用依賴注入 ? ? ? ? 612
26.4 創(chuàng)建模型 ? ? ? ? ? ? 614
26.4.1 創(chuàng)建關(guān)系 ? ? ? ?614
26.4.2 數(shù)據(jù)注釋 ? ? ? ?614
26.4.3 流利API ? ? ? ? 615
26.4.4 自包含類型的配置 ? ? ? ? ? ? 616
26.4.5 在數(shù)據(jù)庫中搭建模型 ? ? ? ? ? ?617
26.4.6 映射到字段 ? ? ? 618
26.4.7 陰影屬性 ? ? ? ?619
26.5 查詢 ? ? ? ? ? ? ? ? 621
26.5.1 基本查詢 ? ? ? ?621
26.5.2 客戶端和服務(wù)器求值 ? ? ? ? ? ?622
26.5.3 原始SQL 查詢 ? ? 623
26.5.4 已編譯查詢 ? ? ? 624
26.5.5 全局查詢過濾器 ? ?624
26.5.6 EF.Functions ? ? ?625
26.6 關(guān)系 ? ? ? ? ? ? ? ?625
26.6.1 使用約定的關(guān)系 ? 625
26.6.2 顯式加載相關(guān)數(shù)據(jù) ? ? ? ? ? ? 627
26.6.3 即時加載相關(guān)數(shù)據(jù) ? ? ? ? ? ? 628
26.6.4 使用注釋的關(guān)系 ? 628
26.6.5 使用流利API 的關(guān)系 ? ? ? ? ? 629
26.6.6 根據(jù)約定的每個層次結(jié)構(gòu)的表 ? ? 630
26.6.7 使用流利API 的每個層次結(jié)構(gòu)中的表 ? ? ?632
26.6.8 表的拆分 ? ? ? ?633
26.6.9 擁有的實(shí)體 ? ? ?634
26.7 保存數(shù)據(jù) ? ? ? ? ? ?636
26.7.1 用關(guān)系添加對象 ? 636
26.7.2 對象的跟蹤 ? ? ?637
26.7.3 更新對象 ? ? ? ?638
26.7.4 更新未跟蹤的對象 ? ? ? ? ? ? 638
26.7.5 批處理 ? ? ? ? 639
26.8 沖突的處理 ? ? ? ? ?640
26.8.1 最后一個更改獲勝 ? ? ? ? ? ? 640
26.8.2 第一個更改獲勝 ? ? ?641
26.9 上下文池 ? ? ? ? ? ?644
26.10 使用事務(wù) ? ? ? ? ? 644
26.10.1 使用隱式的事務(wù) ? ? ? ? ? ?644
26.10.2 創(chuàng)建顯式的事務(wù) ? ? ? ? ? ?646
26.11 遷移 ? ? ? ? ? ? ? 647
26.11.1 準(zhǔn)備項目文件 ? 647
26.11.2 利用ASP.NET Core MVC 托管應(yīng)用程序 ? ? ?648
26.11.3 托管.NET Core 控制臺應(yīng)用程序 ? ? 648
26.11.4 創(chuàng)建遷移 ? ? ?649
26.11.5 以編程方式應(yīng)用遷移 ? ? ? ? 651
26.11.6 應(yīng)用遷移的其他方法 ? ? ? ? 652
26.12 小結(jié) ? ? ? ? ? ? ? 652
第27 章 本地化 ? ? ? ? ? ? ? 653
27.1 全球市場 ? ? ? ? ? ?653
27.2 System.Globalization 名稱空間 ? ? ?654
27.2.1 Unicode 問題 ? ? 654
27.2.2 區(qū)域性和區(qū)域 ? ?655
27.2.3 使用區(qū)域性 ? ? ?658
27.2.4 排序 ? ? ? ? ? 663
27.3 資源 ? ? ? ? ? ? ? ?664
27.3.1 資源讀取器和寫入器 ? ? ? ? ? 664
27.3.2 使用資源文件生成器 ? ? ? ? ? ?665
27.3.3 通過ResourceManager 使用資源文件 ? ? ? ? 666
27.3.4 System.Resources 名稱空間 ? ? ? ?666
27.4 使用ASP.NET Core 本地化 ? ? ? ? ?667
27.4.1 注冊本地化服務(wù) ? ?667
27.4.2 注入本地化服務(wù) ? ?668
27.4.3 區(qū)域性提供程序 ? ?668
27.4.4 在ASP.NET Core 中使用資源 ? ? ? 669
27.4.5 使用控制器和視圖進(jìn)行本地化 ? ? ?670
27.5 本地化UWP ? ? ? ? ? 674
27.5.1 給UWP 使用資源 ? ? ? ? ? ? ? 674
27.5.2 使用多語言應(yīng)用程序工具集進(jìn)行本地化 ? ? ? ?675
27.6 小結(jié) ? ? ? ? ? ? ? ? 677
第28 章 測試 ? ? ? ? ? ? ? ? 678
28.1 概述 ? ? ? ? ? ? ? ? 678
28.2 使用MSTest 進(jìn)行單元測試 ? ? ? ? ?679
28.2.1 使用MSTest 創(chuàng)建單元測試 ? ? ? ?679
28.2.2 運(yùn)行單元測試 ? ? ?681
28.2.3 使用MSTest 預(yù)期異常 ? ? ? ? ? 682
28.2.4 測試全部代碼路徑 ? ? ? ? ? ? ?683
28.2.5 外部依賴 ? ? ? ? 683
28.3 使用xUnit 進(jìn)行單元測試 ? ? ? ? ? 685
28.3.1 使用xUnit 和.NET Core ? ? ? ? ?686
28.3.2 創(chuàng)建Fact 屬性 ? ? 686
28.3.3 創(chuàng)建Theory 特性 ? ? ? ? ? ? ? 687
28.3.4 使用Mocking 庫 ? ?688
28.4 實(shí)時單元測試 ? ? ? ? 690
28.5 使用EF Core 進(jìn)行單元測試 ? ? ? ? 692
28.6 使用Windows 應(yīng)用程序進(jìn)行UI測試 ? ? ? ? ? ? ? ? 693
28.7 Web 集成、負(fù)載和性能測試 ? ? ? ? 697
28.7.1 ASP.NET Core 集成測試 ? ? ? ? ?697
28.7.2 創(chuàng)建Web 測試 ? ? 698
28.7.3 運(yùn)行Web 測試 ? ? 700
28.8 小結(jié) ? ? ? ? ? ? ? ? 702
第29 章 跟蹤、日志和分析 ? ? ?703
29.1 診斷概述 ? ? ? ? ? ? 703
29.2 使用EventSource 跟蹤 ? ? ? ? ? ? ?704
29.2.1 EventSource 的簡單用法 ? ? ? ? ?705
29.2.2 跟蹤工具 ? ? ? ? 706
29.2.3 派生自EventSource ? ? ? ? ? ? ?707
29.2.4 使用注釋和EventSource ? ? ? ? ?709
29.2.5 創(chuàng)建事件清單模式 ? ? ? ? ? ? ?710
29.2.6 使用活動ID ? ? ? ?712
29.3 創(chuàng)建自定義偵聽器 ? ? ?714
29.4 使用ILogger 接口編寫日志 ? ? ? ? ?715
29.4.1 配置提供程序 ? ? ?716
29.4.2 使用作用域 ? ? ? 717
29.4.3 過濾 ? ? ? ? ? ?718
29.4.4 配置日志記錄 ? ? ?718
29.4.5 使用沒有依賴注入的ILogger ? ? ? ?719
29.5 使用Visual Studio App Center進(jìn)行分析 ? ? ? ? ? ? 720
29.6 小結(jié) ? ? ? ? ? ? ? ? 722
第III 部分 Web 應(yīng)用程序和服務(wù)
第30 章 ASP.NET Core ? ? ? 727
30.1 概述 ? ? ? ? ? ? ? ? 727
30.2 Web 技術(shù) ? ? ? ? ? ? 728
30.2.1 HTML ? ? ? ? ? ?728
30.2.2 CSS ? ? ? ? ? ? 729
30.2.3 JavaScript 和TypeScript ? ? ? ? ?729
30.2.4 腳本庫 ? ? ? ? ? 729
30.3 ASP.NET Web 項目 ? ? 730
30.3.1 啟動 ? ? ? ? ? ?733
30.3.2 示例應(yīng)用程序 ? ? ?735
30.4 添加客戶端內(nèi)容 ? ? ? ?736
30.4.1 為客戶端內(nèi)容使用工具 ? ? ? ? ? 737
30.4.2 通過Bower 使用客戶端庫 ? ? ? ? 738
30.4.3 使用JavaScript 包管理器npm ? ? ? 739
30.4.4 捆綁 ? ? ? ? ? ?739
30.4.5 用webpack 打包 ? ?740
30.5 請求和響應(yīng) ? ? ? ? ? 741
30.5.1 請求標(biāo)題 ? ? ? ? 742
30.5.2 查詢字符串 ? ? ? 744
30.5.3 編碼 ? ? ? ? ? ?745
30.5.4 表單數(shù)據(jù) ? ? ? ? 745
30.5.5 cookie ? ? ? ? ? 746
30.5.6 發(fā)送JSON ? ? ? ?747
30.6 依賴注入 ? ? ? ? ? ? 747
30.6.1 定義服務(wù) ? ? ? ? 748
30.6.2 注冊服務(wù) ? ? ? ? 748
30.6.3 注入服務(wù) ? ? ? ? 748
30.6.4 調(diào)用控制器 ? ? ? 749
30.7 簡單的路由 ? ? ? ? ? 749
30.8 創(chuàng)建自定義的中間件 ? ? ? ? ? ? ? 750
30.9 會話狀態(tài) ? ? ? ? ? ? 751
30.10 用ASP.NET Core 配置 ? ? ? ? ? ?752
30.10.1 讀取配置 ? ? ? ?753
30.10.2 修改配置提供程序 ? ? ? ? ? ? 755
30.10.3 基于環(huán)境的不同配置 ? ? ? ? ? 756
30.11 小結(jié) ? ? ? ? ? ? ? ?757
第31 章 ASP.NET Core MVC ? ? ? ? ? ? ?758
31.1 為ASP.NET Core MVC 建立服務(wù) ? ? 758
31.2 定義路由 ? ? ? ? ? ? 760
31.2.1 添加路由 ? ? ? ?760
31.2.2 使用路由約束 ? ? 761
31.3 創(chuàng)建控制器 ? ? ? ? ? 761
31.3.1 理解動作方法 ? ? 762
31.3.2 使用參數(shù) ? ? ? ?762
31.3.3 返回數(shù)據(jù) ? ? ? ?762
31.3.4 使用Controller 基類和POCO控制器 ? ? ? ? ?763
31.4 創(chuàng)建視圖 ? ? ? ? ? ? 765
31.4.1 向視圖傳遞數(shù)據(jù) ? ?765
31.4.2 Razor 語法 ? ? ? 766
31.4.3 創(chuàng)建強(qiáng)類型視圖 ? ?766
31.4.4 定義布局 ? ? ? ?767
31.4.5 用部分視圖定義內(nèi)容 ? ? ? ? ? ?770
31.4.6 使用視圖組件 ? ? 773
31.4.7 在視圖中使用依賴注入 ? ? ? ? ?774
31.4.8 為多個視圖導(dǎo)入名稱空間 ? ? ? ? 775
31.5 從客戶端提交數(shù)據(jù) ? ? 775
31.5.1 模型綁定器 ? ? ? 777
31.5.2 注解和驗證 ? ? ? 778
31.6 使用HTML Helper ? ? ?779
31.6.1 簡單的Helper ? ? 779
31.6.2 使用模型數(shù)據(jù) ? ? 779
31.6.3 定義HTML 特性 ? ? ? ? ? ? ?780
31.6.4 創(chuàng)建列表 ? ? ? ?780
31.6.5 強(qiáng)類型化的Helper ? ? ? ? ? ? ?781
31.6.6 編輯器擴(kuò)展 ? ? ? 782
31.6.7 實(shí)現(xiàn)模板 ? ? ? ?782
31.7 Tag Helper ? ? ? ? ? ? 783
31.7.1 激活Tag Helper ? ?783
31.7.2 使用錨定Tag Helper ? ? ? ? ? ? 783
31.7.3 使用Label Tag Helper ? ? ? ? ? ?784
31.7.4 使用Input Tag Helper ? ? ? ? ? ? 785
31.7.5 使用表單進(jìn)行驗證 ? ? ? ? ? ? 786
31.7.6 environment Tag Helper ? ? ? ? ? 787
31.7.7 創(chuàng)建自定義Tag Helper ? ? ? ? ? 788
31.7.8 用Tag Helper 創(chuàng)建元素 ? ? ? ? ?790
31.8 實(shí)現(xiàn)動作過濾器 ? ? ?792
31.9 創(chuàng)建數(shù)據(jù)驅(qū)動的應(yīng)用程序 ? ? ? ? ?793
31.9.1 定義模型 ? ? ? ?794
31.9.2 創(chuàng)建數(shù)據(jù)庫 ? ? ?795
31.9.3 創(chuàng)建服務(wù) ? ? ? ?796
31.9.4 創(chuàng)建控制器 ? ? ?798
31.9.5 創(chuàng)建視圖 ? ? ? ?800
31.10 實(shí)現(xiàn)身份驗證和授權(quán) ? ? ? ? ? ? 803
31.10.1 存儲和檢索用戶信息 ? ? ? ? ?803
31.10.2 啟動身份系統(tǒng) ? ?804
31.10.3 執(zhí)行用戶注冊 ? ?804
31.10.4 設(shè)置用戶登錄 ? ?806
31.10.5 驗證用戶的身份 ? ? ? ? ? ? ?807
31.10.6 使用Azure Active Directory 對用戶進(jìn)行身份驗證 ? ? ? ? ? ?807
31.11 Razor 頁面 ? ? ? ? ?812
31.11.1 創(chuàng)建一個Razor 頁面項目 ? ? ? 812
31.11.2 實(shí)現(xiàn)數(shù)據(jù)訪問 ? ?813
31.11.3 使用內(nèi)聯(lián)代碼 ? ?814
31.11.4 使用內(nèi)聯(lián)代碼和頁面模型 ? ? ? 816
31.11.5 使用代碼隱藏文件 ? ? ? ? ? ?817
31.11.6 頁面參數(shù) ? ? ? 817
31.12 小結(jié) ? ? ? ? ? ? ? 818
第32 章 Web API ? ? ? ? ? ?819
32.1 概述 ? ? ? ? ? ? ? ?819
32.2 創(chuàng)建服務(wù) ? ? ? ? ? ?820
32.2.1 定義模型 ? ? ? ?821
32.2.2 創(chuàng)建服務(wù) ? ? ? ?821
32.2.3 創(chuàng)建控制器 ? ? ?823
32.2.4 修改響應(yīng)格式 ? ?824
32.2.5 REST 結(jié)果和狀態(tài)碼 ? ? ? ? ? ?825
32.3 創(chuàng)建異步服務(wù) ? ? ? ?826
32.4 創(chuàng)建.NET 客戶端 ? ? 827
32.4.1 發(fā)送GET 請求 ? ?828
32.4.2 從服務(wù)中接收XML ? ? ? ? ? 832
32.4.3 發(fā)送POST 請求 ? 833
32.4.4 發(fā)送PUT 請求 ? ?833
32.4.5 發(fā)送DELETE 請求 ? ? ? ? ? ?834
32.5 寫入數(shù)據(jù)庫 ? ? ? ? ?835
32.5.1 使用EF Core ? ? ?835
32.5.2 創(chuàng)建數(shù)據(jù)訪問服務(wù) ? ? ? ? ? ? ?836
32.6 用OpenAPI 或Swagger 創(chuàng)建元數(shù)據(jù) ? 837
32.7 創(chuàng)建和使用OData服務(wù) ? ? ? ? ? ? 841
32.7.1 創(chuàng)建數(shù)據(jù)模型 ? ? 842
32.7.2 創(chuàng)建數(shù)據(jù)庫 ? ? ? 843
32.7.3 OData 啟動代碼 ? ?844
32.7.4 創(chuàng)建OData 控制器 ? ? ? ? ? ? 844
32.7.5 OData 查詢 ? ? ? 845
32.8 使用Azure Function ? ? 847
32.8.1 創(chuàng)建Azure Function ? ? ? ? ? ? ?847
32.8.2 使用依賴注入容器 ? ? ? ? ? ? ?848
32.8.3 實(shí)現(xiàn)GET、POST 和PUT 請求 ? ? 849
32.8.4 運(yùn)行Azure Function ? ? ? ? ? ? ?851
32.9 小結(jié) ? ? ? ? ? ? ? ? 852
第IV 部分 應(yīng)用程序
第33 章 Windows 應(yīng)用程序 ? ?855
33.1 Windows 應(yīng)用程序簡介 ? ? ? ? ? ? 855
33.1.1 Windows 運(yùn)行庫 ? ?856
33.1.2 Hello, Windows ? ? 856
33.1.3 應(yīng)用程序清單文件 ? ? ? ? ? ? ?857
33.1.4 應(yīng)用程序啟動 ? ? 859
33.1.5 主頁 ? ? ? ? ? ?859
33.2 XAML ? ? ? ? ? ? ? ?861
33.2.1 XAML 標(biāo)準(zhǔn) ? ? ? 861
33.2.2 將元素映射到類 ? ?861
33.2.3 通過XAML 使用定制的.NET 類 ? ?862
33.2.4 將屬性用作特性 ? ?863
33.2.5 將屬性用作元素 ? ?863
33.2.6 依賴屬性 ? ? ? ? 864
33.2.7 創(chuàng)建依賴屬性 ? ? 864
33.2.8 值變更回調(diào)和事件 ? ? ? ? ? ? ?865
33.2.9 路由事件 ? ? ? ? 866
33.2.10 附加屬性 ? ? ? ?867
33.2.11 標(biāo)記擴(kuò)展 ? ? ? ?868
33.2.12 自定義標(biāo)記擴(kuò)展 ? ? ? ? ? ? ?869
33.2.13 條件XAML ? ? ? 870
33.3 控件 ? ? ? ? ? ? ? ? 871
33.3.1 框架派生的UI 元素 ? ? ? ? ? ? 872
33.3.2 控件派生的控件 ? ?875
33.3.3 范圍控件 ? ? ? ? 881
33.3.4 內(nèi)容控件 ? ? ? ? 882
33.3.5 按鈕 ? ? ? ? ? ?883
33.3.6 項控件 ? ? ? ? ?884
33.3.7 Flyout 控件 ? ? ? 884
33.4 數(shù)據(jù)綁定 ? ? ? ? ? ? 884
33.4.1 用INotifyPropertyChanged 更改通知 ? ? ? ? ? ?885
33.4.2 創(chuàng)建圖書列表 ? ? 886
33.4.3 列表綁定 ? ? ? ? 887
33.4.4 把事件綁定到方法 ? ? ? ? ? ? ?887
33.4.5 使用數(shù)據(jù)模板和數(shù)據(jù)模板選擇器 ? ?888
33.4.6 綁定簡單對象 ? ? 890
33.4.7 值的轉(zhuǎn)換 ? ? ? ? 891
33.5 導(dǎo)航 ? ? ? ? ? ? ? ? 892
33.5.1 導(dǎo)航回最初的頁面 ? ? ? ? ? ? ?892
33.5.2 重寫Page 類的導(dǎo)航 ? ? ? ? ? ? 893
33.5.3 在頁面之間導(dǎo)航 ? ?894
33.5.4 后退按鈕 ? ? ? ? 895
33.5.5 Hub ? ? ? ? ? ?896
33.5.6 Pivot ? ? ? ? ? ?898
33.5.7 NavigationView ? ? 899
33.6 布局 ? ? ? ? ? ? ? ? 902
33.6.1 StackPanel ? ? ? ? 902
33.6.2 Canvas ? ? ? ? ?903
33.6.3 Grid ? ? ? ? ? ?903
33.6.4 VariableSizedWrapGrid ? ? ? ? ? 904
33.6.5 RelativePanel ? ? ?906
33.6.6 自適應(yīng)觸發(fā)器 ? ? 906
33.6.7 XAML 視圖 ? ? ? 909
33.6.8 延遲加載 ? ? ? ? 909
33.7 小結(jié) ? ? ? ? ? ? ? ? 910
第34 章 模式和XAML 應(yīng)用程序 ? ? ? ? ? ? 911
34.1 使用 MVVM 的原因 ? ? ? ? ? ? ? 911
34.2 定義 MVVM 模式 ? ? 912
34.3 共享代碼 ? ? ? ? ? ? 913
34.3.1 使用API 協(xié)定和通用Windows平臺 ? ? ? ? ? ?913
34.3.2 使用共享項目 ? ? 915
34.3.3 使用.NET 標(biāo)準(zhǔn)庫 ? ? ? ? ? ? ?916
34.4 示例解決方案 ? ? ? ? 917
34.5 模型 ? ? ? ? ? ? ? ? 918
34.5.1 實(shí)現(xiàn)變更通知 ? ? 918
34.5.2 使用Repository 模式 ? ? ? ? ? ?919
34.6 服務(wù) ? ? ? ? ? ? ? ? 920
34.7 視圖模型 ? ? ? ? ? ? 921
34.7.1 使用IEditableObject ? ? ? ? ? ? 923
34.7.2 視圖模型的具體實(shí)現(xiàn) ? ? ? ? ? ?924
34.7.3 命令 ? ? ? ? ? ?925
34.7.4 服務(wù)、ViewModel 和依賴注入 ? ? 926
34.8 視圖 ? ? ? ? ? ? ? ? 927
34.8.1 從視圖模型中打開對話框 ? ? ? ? 930
34.8.2 頁面之間的導(dǎo)航 ? ?931
34.8.3 自適應(yīng)用戶界面 ? ?933
34.8.4 顯示進(jìn)度信息 ? ? 935
34.8.5 使用列表項中的操作 ? ? ? ? ? ?936
34.9 使用事件傳遞消息 ? ? 938
34.10 使用框架 ? ? ? ? ? ?939
34.11 小結(jié) ? ? ? ? ? ? ? ?940
第35 章 樣式化Windows 應(yīng)用程序 ? ? ? ? 941
35.1 樣式設(shè)置 ? ? ? ? ? ? 941
35.2 形狀 ? ? ? ? ? ? ? ? 942
35.3 幾何圖形 ? ? ? ? ? ? 944
35.3.1 使用段的幾何圖形 ? ? ? ? ? ? 944
35.3.2 使用PathMarkup 的幾何圖形 ? ? ?945
35.4 變換 ? ? ? ? ? ? ? ? 945
35.4.1 縮放 ? ? ? ? ? ?945
35.4.2 平移 ? ? ? ? ? ?946
35.4.3 旋轉(zhuǎn) ? ? ? ? ? ?946
35.4.4 傾斜 ? ? ? ? ? ?946
35.4.5 組合變換和復(fù)合變換 ? ? ? ? ? ?946
35.4.6 使用矩陣的變換 ? ?947
35.5 畫筆 ? ? ? ? ? ? ? ? 947
35.5.1 SolidColorBrush ? ? 947
35.5.2 LinearGradientBrush ? ? ? ? ? ? 947
35.5.3 ImageBrush ? ? ? ?948
35.5.4 AcrylicBrush ? ? ?948
35.5.5 RevealBrush ? ? ? 949
35.6 樣式和資源 ? ? ? ? ? 949
35.6.1 樣式 ? ? ? ? ? ?949
35.6.2 資源 ? ? ? ? ? ?951
35.6.3 從代碼中訪問資源 ? ? ? ? ? ? 952
35.6.4 資源字典 ? ? ? ?952
35.6.5 主題資源 ? ? ? ?953
35.7 模板 ? ? ? ? ? ? ? ? 954
35.7.1 控件模板 ? ? ? ?955
35.7.2 數(shù)據(jù)模板 ? ? ? ?958
35.7.3 樣式化ListView ? ?959
35.7.4 ListView 項的數(shù)據(jù)模板 ? ? ? ? ?960
35.7.5 項容器的樣式 ? ?960
35.7.6 項面板 ? ? ? ? 961
35.7.7 列表視圖的控件模板 ? ? ? ? ? 961
35.8 動畫 ? ? ? ? ? ? ? ?962
35.8.1 時間軸 ? ? ? ? ?962
35.8.2 緩動函數(shù) ? ? ? ?964
35.8.3 關(guān)鍵幀動畫 ? ? ?968
35.8.4 過渡 ? ? ? ? ? 969
35.9 可視化狀態(tài)管理器 ? ?971
35.9.1 用控件模板預(yù)定義狀態(tài) ? ? ? ? 972
35.9.2 定義自定義狀態(tài) ? 973
35.9.3 設(shè)置自定義的狀態(tài) ? ? ? ? ? ? 973
35.10 小結(jié) ? ? ? ? ? ? ? 974
第36 章 高級Windows 應(yīng)用程序 ? ? ? ? ? ?975
36.1 概述 ? ? ? ? ? ? ? ?975
36.2 應(yīng)用程序的生命周期 ? ? ? ? ? ? ?976
36.2.1 應(yīng)用程序的執(zhí)行狀態(tài) ? ? ? ? ? 976
36.2.2 在頁面之間導(dǎo)航 ? 976
36.3 導(dǎo)航狀態(tài) ? ? ? ? ? ?978
36.3.1 暫停應(yīng)用程序 ? ?979
36.3.2 激活暫停的應(yīng)用程序 ? ? ? ? ? 980
36.3.3 測試暫停 ? ? ? ?980
36.3.4 頁面狀態(tài) ? ? ? ?981
36.4 共享數(shù)據(jù) ? ? ? ? ? ?983
36.4.1 共享源 ? ? ? ? 983
36.4.2 共享目標(biāo) ? ? ? ?986
36.5 應(yīng)用程序服務(wù) ? ? ? ?991
36.5.1 創(chuàng)建模型 ? ? ? ?991
36.5.2 為應(yīng)用程序服務(wù)連接創(chuàng)建后臺任務(wù) ?992
36.5.3 注冊應(yīng)用程序服務(wù) ? ? ? ? ? ? 993
36.5.4 調(diào)用應(yīng)用程序服務(wù) ? ? ? ? ? ? 994
36.6 高級的編譯綁定 ? ? ?996
36.6.1 已編譯數(shù)據(jù)綁定的生命周期 ? ? ? 996
36.6.2 綁定到方法上 ? ?997
36.6.3 用x:Bind 分階段 ? 998
36.7 使用文本 ? ? ? ? ? 1002
36.7.1 使用字體 ? ? ? 1002
36.7.2 內(nèi)聯(lián)和塊元素 ? 1004
36.7.3 使用溢出區(qū)域 ? 1005
36.8 上墨 ? ? ? ? ? ? ? 1008
36.9 自動建議 ? ? ? ? ? ?1011
36.10 小結(jié) ? ? ? ? ? ? ? 1013
第37 章 Xamarin.Forms ? ? ? 1015
37.1 Xamarin 開發(fā)入門 ? ? 1015
37.1.1 用Android 架構(gòu)Xamarin ? ? ? ? 1016
37.1.2 用iOS 架構(gòu)Xamarin ? ? ? ? ? ?1016
37.1.3 Xamarin.Forms ? ? 1017
37.2 Xamarin 開發(fā)工具 ? ? 1018
37.2.1 Android ? ? ? ? ?1018
37.2.2 iOS ? ? ? ? ? ?1019
37.2.3 Visual Studio 2017 ? ? ? ? ? ? ?1019
37.2.4 Visual Studio for Mac ? ? ? ? ? ?1019
37.2.5 Visual Studio App Center ? ? ? ? ?1020
37.3 Android 基礎(chǔ) ? ? ? ?1020
37.3.1 活動 ? ? ? ? ? 1021
37.3.2 資源 ? ? ? ? ? 1022
37.3.3 顯示列表 ? ? ? ?1022
37.3.4 顯示消息 ? ? ? ?1024
37.4 iOS 基礎(chǔ) ? ? ? ? ? ?1025
37.4.1 iOS 應(yīng)用程序結(jié)構(gòu) ? ? ? ? ? ? 1025
37.4.2 故事板 ? ? ? ? 1026
37.4.3 控制器 ? ? ? ? 1028
37.4.4 顯示消息 ? ? ? ?1028
37.5 Xamarin. Forms 應(yīng)用程序 ? ? ? ? ?1029
37.5.1 托管Xamarin 的Windows應(yīng)用程序 ? ? ? ?1029
37.5.2 托管Xamarin 的Android ? ? ? ? 1030
37.5.3 托管Xamarin 的iOS ? ? ? ? ? ?1031
37.5.4 共享的項目 ? ? ?1031
37.6 使用公共庫 ? ? ? ? ?1032
37.7 控件層次結(jié)構(gòu) ? ? ? ?1032
37.8 頁面 ? ? ? ? ? ? ? ?1033
37.9 導(dǎo)航 ? ? ? ? ? ? ? ?1034
37.10 布局 ? ? ? ? ? ? ? 1035
37.11 視圖 ? ? ? ? ? ? ? 1037
37.12 數(shù)據(jù)綁定 ? ? ? ? ? 1037
37.13 命令 ? ? ? ? ? ? ? 1038
37.14 ListView 和ViewCell ? ? ? ? ? ? 1038
37.15 小結(jié) ? ? ? ? ? ? ? 1039
附贈章節(jié)電子版(請掃描封底二維碼獲取)
第1 章 Composition ? ? ? ? ? ? 1
BC1.1 概述 ? ? ? ? ? ? ? ? 1
BC1.2 Composition 庫的體系結(jié)構(gòu) ? ? ? ? ?2
BC1.2.1 使用特性的Composition ? ? ? ? 3
BC1.2.2 基于約定的部件注冊 ? ? ? ? ? 8
BC1.3 定義協(xié)定 ? ? ? ? ? ?10
BC1.4 導(dǎo)出部件 ? ? ? ? ? ?13
BC1.4.1 創(chuàng)建部件 ? ? ?13
BC1.4.2 使用部件的部件 ? ? ? ? ? ? 17
BC1.4.3 導(dǎo)出元數(shù)據(jù) ? ? 17
BC1.4.4 使用元數(shù)據(jù)進(jìn)行惰性加載 ? ? ? 19
BC1.5 導(dǎo)入部件 ? ? ? ? ? ?19
BC1.5.1 導(dǎo)入連接 ? ? ?22
BC1.5.2 部件的惰性加載 ? ? ? ? ? ? 23
BC1.5.3 讀取元數(shù)據(jù) ? ? 23
BC1.6 小結(jié) ? ? ? ? ? ? ? ?25
第2 章 XML 和JSON ? ? ? ? ? 26
BC2.1 數(shù)據(jù)格式 ? ? ? ? ? ?26
BC2.1.1 XML ? ? ? ? ?27
BC2.1.2 .NET 支持的XML 標(biāo)準(zhǔn) ? ? ? ?28
BC2.1.3 在框架中使用XML ? ? ? ? ? 28
BC2.1.4 JSON ? ? ? ? 29
BC2.2 讀寫流格式的XML ? ?30
BC2.2.1 使用XmlReader 類讀取XML ? ?31
BC2.2.2 使用XmlWriter 類 ? ? ? ? ? ?33
BC2.3 在.NET 中使用DOM ? ? ? ? ? ? ? 34
BC2.3.1 使用XmlDocument 類讀取 ? ? ?35
BC2.3.2 遍歷層次結(jié)構(gòu) ? ? ? ? ? ? ? 35
BC2.3.3 使用XmlDocument 插入節(jié)點(diǎn) ? ?36
BC2.4 使用XPathNavigator 類 ? ? ? ? ? ?37
BC2.4.1 XPathDocument 類 ? ? ? ? ? ?37
BC2.4.2 XPathNavigator 類 ? ? ? ? ? ?37
BC2.4.3 XPathNodeIterator 類 ? ? ? ? ?38
BC2.4.4 使用XPath 導(dǎo)航XML ? ? ? ? 38
BC2.4.5 使用XPath 評估 ? ? ? ? ? ? 39
BC2.4.6 用XPath 修改XML ? ? ? ? ? 39
BC2.5 在XML 中序列化對象 ? ? ? ? ? ? 40
BC2.5.1 序列化簡單對象 ? ? ? ? ? ? 40
BC2.5.2 序列化一個對象樹 ? ? ? ? ? 42
BC2.5.3 沒有特性的序列化 ? ? ? ? ? 44
BC2.6 LINQ to XML ? ? ? ? 46
BC2.6.1 XDocument 對象 ? ? ? ? ? ? 46
BC2.6.2 XElement 對象 ? ? ? ? ? ? ?47
BC2.6.3 XNamespace 對象 ? ? ? ? ? ?47
BC2.6.4 XComment 對象 ? ? ? ? ? ? 49
BC2.6.5 XAttribute 對象 ? ? ? ? ? ? ?49
BC2.6.6 使用LINQ 查詢XML 文檔 ? ? 50
BC2.6.7 查詢動態(tài)的XML 文檔 ? ? ? ? 50
BC2.6.8 轉(zhuǎn)換為對象 ? ? 52
BC2.6.9 轉(zhuǎn)換為XML ? ? 52
BC2.7 JSON ? ? ? ? ? ? ? 53
BC2.7.1 創(chuàng)建JSON ? ? ?53
BC2.7.2 轉(zhuǎn)換對象 ? ? ?54
BC2.7.3 序列化對象 ? ? 55
BC2.7.4 遍歷JSON 節(jié)點(diǎn) ? ? ? ? ? ? 55
BC2.8 小結(jié) ? ? ? ? ? ? ? ?56
第3 章 WebHooks 和SignalR ? ?57
BC3.1 概述 ? ? ? ? ? ? ? ?57
BC3.2 WebSockets ? ? ? ? ? 58
BC3.2.1 WebSockets 服務(wù)器 ? ? ? ? ? 58
BC3.2.2 WebSockets 客戶端 ? ? ? ? ? 60
BC3.3 使用SignalR 的簡單聊天程序 ? ? ? 62
BC3.3.1 創(chuàng)建集線器 ? ? 62
BC3.3.2 用HTML 和JavaScript 創(chuàng)建客戶端 ? ? ? ?63
BC3.3.3 創(chuàng)建SignalR .NET 客戶端 ? ? ?65
BC3.4 分組連接 ? ? ? ? ? ?68
BC3.4.1 用分組擴(kuò)展集線器 ? ? ? ? ? 68
BC3.4.2 用分組擴(kuò)展Windows 客戶端 ? ?69
BC3.5 WebHooks 的體系結(jié)構(gòu) ? ? ? ? ? ? 71
BC3.6 創(chuàng)建Dropbox 和GitHub 接收器 ? ? 72
BC3.6.1 創(chuàng)建Web 應(yīng)用程序 ? ? ? ? ? 73
BC3.6.2 為Dropbox 和GitHub 配置WebHooks ? ? ?73
BC3.6.3 實(shí)現(xiàn)處理程序 ? ? ? ? ? ? ? 73
BC3.6.4 用Dropbox 和GitHub 配置應(yīng)用程序 ? ? ?76
BC3.6.5 運(yùn)行應(yīng)用程序 ? ? ? ? ? ? ? 77
BC3.7 小結(jié) ? ? ? ? ? ? ? ?77
第4 章 機(jī)器人和認(rèn)知服務(wù) ? ? ? 79
BC4.1 機(jī)器人的定義 ? ? ? ?79
BC4.2 創(chuàng)建對話框機(jī)器人 ? ?80
BC4.2.1 配置狀態(tài)服務(wù) ? ? ? ? ? ? ?81
BC4.2.2 接收機(jī)器人消息 ? ? ? ? ? ?.82
BC4.2.3 定義對話框 ? ? ? 83
BC4.2.4 使用PromptDialog ? ? ? ? ? ?85
BC4.3 為對話框使用Form Flow ? ? ? ? ? 88
BC4.4 創(chuàng)建英雄卡 ? ? ? ? 89
BC4.5 機(jī)器人和LUIS ? ? ? 91
BC4.5.1 定義意圖和話語 ? ? ? ? ? ?92
BC4.5.2 訪問LUIS 中的建議 ? ? ? ? 95
BC4.5.3 使用帶有活動檢查的Form Flow ? ?96
BC4.6 小結(jié) ? ? ? ? ? ? ?96
第5 章 Windows 應(yīng)用程序的更多特性 ? ? ? ?97
BC5.1 概述 ? ? ? ? ? ? ? 97
BC5.2 相機(jī) ? ? ? ? ? ? ? ?98
BC5.3 Geolocation 和MapControl ? ? ? ? ? 99
BC5.3.1 使用MapControl ? ? ? ? ? ? 99
BC5.3.2 使用Geolocator 定位信息 ? ? ?102
BC5.3.3 街景地圖 ? ? ?103
BC5.3.4 繼續(xù)請求位置信息 ? ? ? ? ? 104
BC5.4 傳感器 ? ? ? ? ? ? 105
BC5.4.1 光線 ? ? ? ? 106
BC5.4.2 羅盤 ? ? ? ? 107
BC5.4.3 加速計 ? ? ? 107
BC5.4.4 傾斜計 ? ? ? 108
BC5.4.5 陀螺儀 ? ? ? 109
BC5.4.6 方向 ? ? ? ? 109
BC5.4.7 Rolling Marble 示例 ? ? ? ? ?110
BC5.5 小結(jié) ? ? ? ? ? ? ? 112
可以直接購買
原文地址:https://mp.weixin.qq.com/s/fQdcCwnt6-RUrqynAHhDLw
.NET社區(qū)新聞,深度好文,歡迎訪問公眾號文章匯總 http://www.csharpkit.com
總結(jié)
以上是生活随笔為你收集整理的持续畅销20年的《C#高级编程》出第11版了!的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 分享一个.NET平台开源免费跨平台的大数
- 下一篇: 2019年了,C#发展的怎么样了呢?