注冊 | 登錄讀書好,好讀書,讀好書!
讀書網(wǎng)-DuShu.com
當(dāng)前位置: 首頁出版圖書科學(xué)技術(shù)計算機(jī)/網(wǎng)絡(luò)軟件與程序設(shè)計C# 12.0本質(zhì)論(第8版)

C# 12.0本質(zhì)論(第8版)

C# 12.0本質(zhì)論(第8版)

定 價:¥199.00

作 者: [美] 馬克·米凱利斯(Mark Michaelis)著 周靖 譯
出版社: 清華大學(xué)出版社
叢編項:
標(biāo) 簽: 暫缺

ISBN: 9787302668046 出版時間: 2024-08-01 包裝: 平裝-膠訂
開本: 16開 頁數(shù): 字?jǐn)?shù):  

內(nèi)容簡介

  《C# 12.0本質(zhì)論(第8版)》是C#領(lǐng)域中廣受好評的經(jīng)典著作。作為C#權(quán)威指南,本書深入解析了C# 12.0的類型別名、內(nèi)聯(lián)數(shù)組、默認(rèn)Lambda表達(dá)式參數(shù)以及對許多主要語言構(gòu)造的擴(kuò)展支持。全書共24章,每章開頭用“思維導(dǎo)圖”指明要討論的主題以及每個主題與整體的關(guān)系。在介紹相關(guān)知識點的同時結(jié)合了大量通俗易懂的實例,旨在幫助讀者全面掌握C#語言,快速成為C#高級程序員。《C# 12.0本質(zhì)論(第8版)》適用于對C#感興趣的各種層次的讀者,無論是初學(xué)者還是資源開發(fā)人員,都可以從本書中獲益。

作者簡介

  著譯者簡介馬克·米凱利斯(Mark Michaelis)創(chuàng)新軟件工程和咨詢公司IntelliTect創(chuàng)始人、首席軟件架構(gòu)師和培訓(xùn)師。作為享譽(yù)全球的C#專家,他28次入選微軟最有價值專家((MVP),并且從2007年開始,一直擔(dān)任微軟區(qū)域主管。他是斯波坎.NET用戶組創(chuàng)始人、年度TEDx活動的聯(lián)合組織者以及東華盛頓大學(xué)的兼職教授。周靖微軟MVP(最有價值專家),技術(shù)型資深譯者,涉獵廣泛,具有深厚的技術(shù)功底和良好的文學(xué)素養(yǎng)。早期癡迷于硬件,曾多年擔(dān)任《微型計算機(jī)》雜志特約作者。繼而潛心鉆研程序設(shè)計并在這方面積累了豐富的經(jīng)驗。翻譯風(fēng)格嚴(yán)謹(jǐn)、準(zhǔn)確、樸實、流暢,深受讀者好評。代表譯著有《學(xué)習(xí)C 20中文版》、《學(xué)習(xí)Python》、《Windows核心編程》系列版本、《深入CLR》系列版本、《Visual C#從入門到精通》系列版本以及《機(jī)器學(xué)習(xí)與人工智能實戰(zhàn)》等。

圖書目錄

第1章 C#概述 001
1.1 Hello, World 002
1.1.1 創(chuàng)建、編輯、編譯和運行C#源代碼 002
1.1.2 理解項目 006
1.1.3 編譯和執(zhí)行 007
1.1.4 使用本書源代碼 008
1.2 C#語法基礎(chǔ) 008
1.2.1 語句和語句定界符 008
1.2.2 認(rèn)識類和方法 009
1.2.3 C#語言的關(guān)鍵字 010
1.2.4 標(biāo)識符 011
1.2.5 類型定義 013
1.2.6 Main方法 014
1.2.7 空白 015
1.3 使用變量 016
1.3.1 數(shù)據(jù)類型 016
1.3.2 變量聲明 017
1.3.3 變量賦值 017
1.3.4 使用變量 018
1.4 控制臺輸入和輸出 019
1.4.1 從控制臺獲取輸入 019
1.4.2 將輸出寫入控制臺 020
1.4.3 注釋 022
1.4.4 調(diào)試 024
1.5 托管執(zhí)行和CLI  025
1.6 多個.NET框架 029
1.6.1 應(yīng)用程序編程接口 030
1.6.2 C#和.NET版本控制 030
1.7 小結(jié) 032
第2章 數(shù)據(jù)類型 033
2.1 類型名稱形式 033
2.2 基本數(shù)值類型 035
2.2.1 整數(shù)類型 035
2.2.2 浮點類型 036
2.2.3 decimal類型 037
2.2.4 字面值 038
2.3 更多基元類型 042
2.3.1 布爾類型bool 042
2.3.2 字符類型char 043
2.3.3 字符串string 044
2.3.4 關(guān)鍵字null和void 055
2.4 數(shù)據(jù)類型轉(zhuǎn)換 056
2.4.1 顯式轉(zhuǎn)型 057
2.4.2 隱式轉(zhuǎn)型 058
2.4.3 不使用轉(zhuǎn)型操作符的類型轉(zhuǎn)換 059
2.5 小結(jié) 061
第3章 深入數(shù)據(jù)類型 062
3.1 類型的劃分 062
3.1.1 值類型 062
3.1.2 引用類型 063
3.2  聲明允許為null的類型 064
3.2.1 對null引用進(jìn)行解引用 064
3.2.2 可空值類型 065
3.2.3 可空引用類型 066
3.3  隱式類型的局部變量 067
3.4 元組 068
3.5 數(shù)組 073
3.5.1 數(shù)組聲明 075
3.5.2 數(shù)組實例化和賦值 076
3.5.3 使用數(shù)組 079
3.5.4 范圍 083
3.5.5 更多數(shù)組方法 084
3.5.6 數(shù)組的實例成員 085
3.5.7 字符串作為數(shù)組 086
3.5.8 常見數(shù)組錯誤 088
3.6 小結(jié) 089
第4章 操作符和控制流 090
4.1 操作符 091
4.1.1 一元正負(fù)操作符 091
4.1.2 二元算術(shù)操作符 092
4.1.3 復(fù)合賦值操作符 097
4.1.4 遞增和遞減操作符 098
4.1.5 常量表達(dá)式和常量符號 101
4.2 控制流概述 102
4.2.1 if語句 104
4.2.2 嵌套if 104
4.3 代碼塊({}) 106
4.4 代碼塊、作用域和聲明空間 107
4.5 布爾表達(dá)式 109
4.5.1 關(guān)系操作符和相等性操作符 109
4.5.2 邏輯操作符 110
4.5.3 邏輯取反操作符! 112
4.5.4 條件操作符?: 112
4.6 用null編程 113
4.6.1 檢查是否為null 113
4.6.2 空合并操作符??和空合并賦值操作符??= 115
4.6.3 空條件操作符?. 116
4.6.4 空包容操作符! 117
4.7 按位操作符 119
4.7.1 移位操作符 120
4.7.2 按位操作符 120
4.7.3 按位復(fù)合賦值操作符 122
4.7.4 按位取反操作符 123
4.8 再論控制流語句 123
4.8.1 while循環(huán)和do/while循環(huán) 123
4.8.2 for循環(huán) 125
4.8.3 foreach循環(huán) 127
4.8.4 基本switch語句 129
4.9 跳轉(zhuǎn)語句 132
4.9.1 break語句 132
4.9.2 continue語句 133
4.9.3 goto語句 135
4.10 C#預(yù)處理器指令 136
4.10.1 排除和包含代碼 137
4.10.2 定義預(yù)處理器符號 138
4.10.3 生成錯誤#error和警告#warning 139
4.10.4 關(guān)閉警告消息#pragma 139
4.10.5 nowarn:選項 140
4.10.6 指定行號#line 140
4.10.7 可視編輯器提示#region和#endregion 141
4.11 小結(jié) 142
第5章 參數(shù)和方法 144
5.1 調(diào)用方法 145
5.1.1 命名空間 146
5.1.2 類型名稱 148
5.1.3 作用域 148
5.1.4 方法名稱 148
5.1.5 形參和實參 148
5.1.6 方法返回值 148
5.1.7 對比語句和方法調(diào)用 149
5.2 聲明方法 149
5.2.1 參數(shù)聲明 151
5.2.2 方法返回類型聲明 151
5.2.3 表達(dá)式主體方法 153
5.2.4 本地函數(shù) 154
5.3 using指令 154
5.3.1 using指令概述 155
5.3.2 隱式using指令 156
5.3.3 全局using指令 157
5.3.4 .csproj Using元素 158
5.3.5 using static指令  159
5.3.6 使用別名 160
5.4 Main()方法的返回值和參數(shù) 161
5.5 頂級語句 163
5.6 高級方法參數(shù) 164
5.6.1 值參數(shù) 164
5.6.2 引用參數(shù)ref 166
5.6.3 輸出參數(shù)out 167
5.6.4 只讀傳引用 169
5.6.5 返回引用 169
5.6.6 參數(shù)數(shù)組(params) 171
5.7 遞歸 173
5.8 方法重載 175
5.9 可選參數(shù) 178
5.10 用異常實現(xiàn)基本錯誤處理 181
5.10.1 捕捉錯誤 182
5.10.2 使用throw語句報告錯誤 189
5.11 小結(jié) 194
第6章 類 195
6.1 類的聲明和實例化 198
6.2 實例字段 200
6.2.1 聲明實例字段 201
6.2.2 訪問實例字段 202
6.3 實例方法 202
6.4 使用this關(guān)鍵字 204
6.5 訪問修飾符 209
6.6 屬性 211
6.6.1 聲明屬性 212
6.6.2 自動實現(xiàn)的屬性 213
6.6.3 屬性和字段的設(shè)計規(guī)范 215
6.6.4 提供屬性驗證 216
6.6.5 只讀和只寫屬性 218
6.6.6 計算屬性 219
6.6.7 取值和賦值方法的訪問修飾符 221
6.6.8 屬性和方法調(diào)用不允許作為ref或out參數(shù)值 222
6.7 構(gòu)造函數(shù) 223
6.7.1 聲明主構(gòu)造函數(shù) 224
6.7.2 定義構(gòu)造函數(shù) 225
6.7.3 默認(rèn)和拷貝構(gòu)造函數(shù) 225
6.7.4 對象初始化器 226
6.7.5 僅初始化的賦值函數(shù) 228
6.7.6 重載構(gòu)造函數(shù) 229
6.7.7 構(gòu)造函數(shù)鏈:使用this調(diào)用另一個構(gòu)造函數(shù) 230
6.8 在構(gòu)造函數(shù)中初始化非空引用類型的屬性 232
6.8.1 可讀/可寫非空引用類型的屬性 233
6.8.2 只讀自動實現(xiàn)的引用類型屬性 234
6.8.3 required修飾符 235
6.9 可空特性 238
6.10 解構(gòu)函數(shù) 240
6.11 靜態(tài)成員 242
6.11.1 靜態(tài)字段 242
6.11.2 靜態(tài)方法 244
6.11.3 靜態(tài)構(gòu)造函數(shù) 246
6.11.4 靜態(tài)屬性 247
6.11.5 靜態(tài)類 248
6.12 擴(kuò)展方法 249
6.13 封裝數(shù)據(jù) 251
6.13.1 const 251
6.13.2 readonly 252
6.14 嵌套類 253
6.15 分部類 255
6.15.1 定義分部類 256
6.15.2 分部方法 257
6.16 小結(jié) 259
第7章 繼承 260
7.1 派生 261
7.1.1 基類型和派生類型之間的轉(zhuǎn)型 263
7.1.2 private訪問修飾符 265
7.1.3 protected訪問修飾符 266
7.1.4 擴(kuò)展方法 267
7.1.5 單繼承 267
7.1.6 密封類 268
7.2 重寫基類 268
7.2.1 virtual修飾符 268
7.2.2 協(xié)變返回類型 271
7.2.3 new修飾符 271
7.2.4 sealed修飾符 274
7.2.5 base成員 275
7.2.6 調(diào)用基類構(gòu)造函數(shù) 276
7.3 抽象類 278
7.4 所有類都從System.Object派生 282
7.5 類型檢查 283
7.5.1 使用is操作符進(jìn)行類型檢查 284
7.5.2 用聲明進(jìn)行類型檢查 285
7.5.3 使用switch語句進(jìn)行類型檢查 286
7.5.4 使用switch表達(dá)式進(jìn)行類型檢查 286
7.6 模式匹配 287
7.6.1 常量模式(C# 7.0) 287
7.6.2 關(guān)系模式(C# 9.0) 288
7.6.3 邏輯模式(C# 9.0) 289
7.6.4 圓括號模式(C# 9.0) 290
7.6.5 元組模式(C# 8.0) 290
7.6.6 位置模式(C# 8.0) 291
7.6.7 屬性模式(C# 8.0和C# 10.0) 292
7.6.8 when子句 294
7.6.9 使用無關(guān)類型進(jìn)行模式匹配 294
7.6.10 遞歸模式匹配(C# 7.0) 295
7.6.11 列表模式 296
7.7 能利用多態(tài)性就避免模式匹配 298
7.8 小結(jié) 300
第8章 接口 301
8.1 接口概述 302
8.2 通過接口實現(xiàn)多態(tài)性 303
8.3 接口實現(xiàn) 307
8.3.1 顯式成員實現(xiàn) 308
8.3.2 隱式成員實現(xiàn) 309
8.3.3 比較顯式與隱式接口實現(xiàn) 310
8.4 在實現(xiàn)類和接口之間轉(zhuǎn)換 311
8.5 接口繼承 311
8.6 多接口繼承 313
8.7 接口上的擴(kuò)展方法 314
8.8 版本控制 316
8.8.1 C# 8.0之前的接口版本控制 317
8.8.2 C# 8.0之后的接口版本控制 318
8.8.3 受保護(hù)接口成員提供了額外的封裝和多態(tài)性 325
8.9 比較擴(kuò)展方法和默認(rèn)接口成員 329
8.10 比較接口和抽象類 330
8.11 比較接口和特性 331
8.12 小結(jié) 331
第9章 結(jié)構(gòu)和記錄 333
9.1 對比引用相等性和值相等性 336
9.2 結(jié)構(gòu) 337
9.2.1 記錄結(jié)構(gòu) 337
9.2.2 記錄結(jié)構(gòu)的CIL代碼 339
9.3 記錄類 341
9.3.1 用屬性提供數(shù)據(jù)存儲 344
9.3.2 不可變值類型 345
9.3.3 使用with操作符克隆記錄 346
9.3.4 記錄構(gòu)造函數(shù) 348
9.3.5 記錄結(jié)構(gòu)初始化 348
9.3.6 記錄的解構(gòu)函數(shù) 350
9.4 重寫object的成員 350
9.4.1 重寫ToString() 350
9.4.2 實現(xiàn)值相等性 352
9.4.3 自定義記錄的行為 356
9.5 裝箱 357
9.6 枚舉 363
9.6.1 在枚舉和字符串之間轉(zhuǎn)換 367
9.6.2 枚舉作為標(biāo)志使用 368
9.7 小結(jié) 372
第10章 良好形式的類型 374
10.1 操作符重載 374
10.1.1 比較操作符 375
10.1.2 二元操作符 376
10.1.3 二元操作符復(fù)合賦值 377
10.1.4 條件邏輯操作符 378
10.1.5 一元操作符 378
10.1.6 轉(zhuǎn)換操作符 379
10.1.7 轉(zhuǎn)換操作符設(shè)計規(guī)范 380
10.2 引用其他程序集 381
10.2.1 引用庫 381
10.2.2 用Dotnet CLI引用項目或庫 382
10.2.3 在Visual Studio 2022中引用項目或庫 382
10.2.4 NuGet打包 382
10.2.5 用Dotnet CLI引用NuGet包 383
10.2.6 在Visual Studio 2022中引用NuGet包 383
10.2.7 調(diào)用NuGet包 384
10.3 類型封裝 385
10.3.1 類型聲明中的訪問修飾符public或internal 385
10.3.2 類型成員修飾符protected internal 386
10.3.3 file類型修飾符 386
10.4 定義命名空間 387
10.5 XML注釋 390
10.5.1 將XML注釋和編程構(gòu)造關(guān)聯(lián) 390
10.5.2 生成XML文檔文件 392
10.6 垃圾回收和弱引用 393
10.7 資源清理 396
10.7.1 終結(jié)器 396
10.7.2 使用using語句進(jìn)行確定性終結(jié) 399
10.7.3 垃圾回收、終結(jié)和IDisposable 402
10.8 推遲初始化 408
10.9 小結(jié) 409
第11章 異常處理 411
11.1 多異常類型 411
11.2 捕捉異常 414
11.3 重新拋出異常 415
11.4 常規(guī)catch塊 417
11.5 異常處理設(shè)計規(guī)范 417
11.6 自定義異常 420
11.7 重新拋出包裝的異常 423
11.8 小結(jié) 425
第12章 泛型 426
12.1 如果C#語言沒有泛型 426
12.2 泛型類型概述 431
12.2.1 使用泛型類 431
12.2.2 定義一個簡單的泛型類 433
12.2.3 泛型的優(yōu)點 433
12.2.4 類型參數(shù)命名規(guī)范 434
12.2.5 泛型接口和結(jié)構(gòu) 434
12.2.6 定義構(gòu)造函數(shù)和終結(jié)器 436
12.2.7 指定默認(rèn)值 437
12.2.8 多個類型參數(shù) 438
12.2.9 嵌套泛型類型 441
12.3 約束 441
12.3.1 接口約束 444
12.3.2 類型參數(shù)約束 445
12.3.3 unmanaged約束 447
12.3.4 notnull約束 447
12.3.5 struct/class約束 447
12.3.6 多個約束 448
12.3.7 構(gòu)造函數(shù)約束 449
12.3.8 約束繼承 451
12.4 泛型方法 454
12.4.1 泛型方法類型推斷 455
12.4.2 指定約束 456
12.5 協(xié)變性和逆變性 457
12.5.1 使用out類型參數(shù)修飾符允許協(xié)變性 458
12.5.2 使用in類型參數(shù)修飾符允許逆變性 459
12.5.3 數(shù)組對不安全協(xié)變性的支持 462
12.6 泛型的內(nèi)部機(jī)制 462
12.7 小結(jié) 465
第13章 委托和Lambda表達(dá)式 466
13.1 委托概述 467
13.1.1 背景 467
13.1.2 委托數(shù)據(jù)類型 469
13.2 聲明委托類型 470
13.2.1 常規(guī)用途的委托類型:System.Func和System.Action 470
13.2.2 實例化委托 472
13.3 Lambda表達(dá)式 476
13.4 表達(dá)式Lambda 479
13.5 匿名方法 481
13.6 委托沒有結(jié)構(gòu)相等性 482
13.7 外部變量 484
13.8 表達(dá)式樹 489
13.8.1 Lambda表達(dá)式作為數(shù)據(jù)使用 489
13.8.2 表達(dá)式樹作為對象圖使用 490
13.8.3 對比委托和表達(dá)式樹 492
13.8.4 解析表達(dá)式樹 492
13.9 小結(jié) 494
第14章 事件 496
14.1 使用多播委托來編碼發(fā)布-訂閱模式 497
14.1.1 定義訂閱者方法 497
14.1.2 定義發(fā)布者 498
14.1.3 連接發(fā)布者和訂閱者 498
14.1.4 調(diào)用委托 499
14.1.5 檢查空值 500
14.1.6 委托操作符 501
14.1.7 順序調(diào)用 503
14.1.8 錯誤處理 504
14.1.9 方法返回值和傳引用 507
14.2 理解事件 507
14.2.1 事件的作用 507
14.2.2 聲明事件 509
14.2.3 編碼規(guī)范 510
14.2.4 實現(xiàn)自定義事件 514
14.3 小結(jié) 515
第15章 支持標(biāo)準(zhǔn)查詢操作符的集合接口 516
15.1 集合初始化器 517
15.2 IEnumerable使類成為集合 519
15.3.1 將foreach用于數(shù)組 519
15.3.2 將foreach用于IEnumerable 519
15.3.3 foreach循環(huán)期間不要修改集合 523
15.3 標(biāo)準(zhǔn)查詢操作符 523
15.3.1 使用Where()來篩選 525
15.3.2 使用Select()來投射  526
15.3.3 使用Count()對元素進(jìn)行計數(shù) 528
15.3.4 推遲執(zhí)行  529
15.3.5 使用OrderBy()和ThenBy()來排序 532
15.3.6 使用Join()執(zhí)行內(nèi)連接 535
15.3.7 使用GroupBy分組結(jié)果 538
15.3.8 使用GroupJoin()實現(xiàn)一對多關(guān)系 539
15.3.9 調(diào)用SelectMany() 542
15.3.10 更多標(biāo)準(zhǔn)查詢操作符 543
15.4 匿名類型與LINQ  546
15.3.1 匿名類型 546
15.3.2 用LINQ投射成匿名類型 548
15.3.3 匿名類型和隱式局部變量的更多注意事項 549
15.5 小結(jié) 552
第16章 使用查詢表達(dá)式的LINQ 553
16.1 查詢表達(dá)式概述 553
16.1.1 投射 555
16.1.2 篩選 561
16.1.3 排序 562
16.1.4 let子句 562
16.1.5 分組 563
16.1.6 使用into實現(xiàn)查詢延續(xù) 566
16.1.7 用多個from子句“扁平化”序列的序列 567
16.2 查詢表達(dá)式只是方法調(diào)用 568
16.3 小結(jié) 569
第17章 構(gòu)建自定義集合 570
17.1 更多集合接口 571
17.1.1 IList和IDictionary 572
17.1.2 ICollection 572
17.2 主要集合類 572
17.2.1 列表集合:List 573
17.2.1 全序 576
17.2.3 查找List 576
17.2.4 字典集合Dictionary 578
17.2.5 已排序集合:SortedDictionary和SortedList 583
17.2.6 棧集合:Stack 584
17.2.7 隊列集合:Queue 585
17.2.8 鏈表:LinkedList 585
17.2.9 Span和ReadOnlySpan 586
17.3 提供索引器 587
17.4 返回null或者空集合 590
17.5 迭代器 591
17.5.1 定義迭代器 591
17.5.2 迭代器語法 592
17.5.3 從迭代器生成值 592
17.5.4 迭代器和狀態(tài) 594
17.5.5 更多的迭代器例子 595
17.5.6 將yield return語句放到循環(huán)中 596
17.5.7 取消更多的迭代:yield break 599
17.5.8 在類中創(chuàng)建多個迭代器 601
17.5.9 yield語句的要求 601
17.6 小結(jié) 602
第18章 反射、特性和動態(tài)編程 603
18.1 反射 603
18.1.1 使用System.Type訪問元數(shù)據(jù) 604
18.1.2 成員調(diào)用 606
18.1.3 泛型類型上的反射 610
18.2 nameof操作符 612
18.3 特性 613
18.3.1 自定義特性 617
18.3.2 查找特性 617
18.3.3 使用構(gòu)造函數(shù)初始化特性 618
18.3.4 System.AttributeUsageAttribute 622
18.3.5 具名參數(shù) 623
18.3.6 預(yù)定義特性 625
18.3.7 System.ConditionalAttribute 625
18.3.8 System.ObsoleteAttribute 627
18.3.9 泛型特性 628
18.3.10 Caller*特性 628
18.4 使用動態(tài)對象進(jìn)行編程 631
18.4.1 使用dynamic調(diào)用反射 632
18.4.2 dynamic的原則和行為 633
18.4.3 為什么需要動態(tài)綁定 635
18.4.4 比較靜態(tài)編譯和動態(tài)編程 635
18.4.5 實現(xiàn)自定義動態(tài)對象 636
18.5 小結(jié) 639
第19章 多線程處理 640
19.1 多線程處理基礎(chǔ) 642
19.2 異步任務(wù)  645
19.2.1 為什么要用TPL 646
19.2.2 理解異步任務(wù) 647
19.2.3 任務(wù)延續(xù) 650
19.2.4 用AggregateException處理任務(wù)的未處理異常 655
19.3 取消任務(wù) 660
19.3.1 Task.Run()是Task.Factory.StartNew()的簡化形式 663
19.3.2 長時間運行的任務(wù) 664
19.3.3 對任務(wù)進(jìn)行資源清理 665
19.4 使用System.Threading 665
19.5 小結(jié) 666
第20章 基于任務(wù)的異步模式編程 667
20.1 以同步方式調(diào)用高延遲操作 668
20.2 使用TPL異步調(diào)用高延遲操作 670
20.3 使用async/await實現(xiàn)基于任務(wù)的異步模式 673
20.4 異步返回ValueTask 678
20.5 異步流 680
20.6 IAsyncDisposable接口以及await using聲明和語句 684
20.7 通過IAsyncEnumerable來使用LINQ 684
20.8 從異步方法返回void 686
20.9 異步Lambda和本地函數(shù) 689
20.10 任務(wù)調(diào)度器和同步上下文 694
20.11 async/await和Windows UI 695
20.12 小結(jié) 698
第21章 并行迭代 699
21.1 并行迭代 699
20.2 并行執(zhí)行LINQ查詢 706
21.3 小結(jié) 711
第22章 線程同步 712
22.1 線程同步的意義 713
22.1.1 用Monitor同步 716
22.1.2 使用lock關(guān)鍵字 718
22.1.3 lock對象的選擇 720
22.1.4 為什么要避免鎖定this、typeof(type)和string 721
22.1.5 避免用MethodImplAttribute同步 721
22.1.6 將字段聲明為volatile 722
22.1.7 使用System.Threading.Interlocked類 722
22.1.8 多個線程時的事件通知 724
22.1.9 同步設(shè)計最佳實踐 725
22.1.10 更多同步類型 726
22.1.11 線程本地存儲 733
22.2 計時器 736
22.3 小結(jié) 737
第23章 平臺互操作性和不安全代碼 739
23.1 平臺調(diào)用 740
23.1.1 聲明外部函數(shù) 740
23.1.2 參數(shù)的數(shù)據(jù)類型 740
23.1.3 本機(jī)大小的整數(shù) 742
23.1.4 使用ref而不是指針 742
23.1.5 為順序布局使用StructLayoutAttribute 743
23.1.6 內(nèi)聯(lián)數(shù)組 743
23.1.7 跳過局部變量的初始化 744
23.1.8 錯誤處理 744
23.1.9 使用SafeHandle 746
23.1.10 調(diào)用外部函數(shù) 747
23.1.11 用包裝器簡化API調(diào)用 749
23.1.12 函數(shù)指針映射到委托 750
23.1.13 設(shè)計規(guī)范 750
23.2 指針和地址 751
23.2.1 不安全代碼 751
23.2.2  指針聲明 752
23.2.3 指針賦值 754
23.2.4 指針解引用 756
23.2.5 訪問被引用物類型的成員 758
23.3 通過委托執(zhí)行不安全代碼 758
23.4 小結(jié) 760
第24章 公共語言基礎(chǔ)結(jié)構(gòu)(CLI) 761
24.1 CLI的定義 762
24.2 CLI的實現(xiàn) 762
24.2.1 Microsoft .NET Framework 764
24.2.2 .NET Core 764
24.2.3 Xamarin 765
24.3 .NET Standard 765
24.4 BCL 765
24.5 C#編譯成機(jī)器碼 765
24.6 運行時 767
24.6.1 垃圾回收 767
24.6.2 平臺可移植性 769
24.6.3 性能 769
24.7 程序集、清單和模塊 770
24.8 公共中間語言 771
24.9 公共類型系統(tǒng) 772
24.10 公共語言規(guī)范 772
24.11 元數(shù)據(jù) 773
24.12 NET Native和AOT編譯 773
24.13 小結(jié) 774

本目錄推薦

掃描二維碼
Copyright ? 讀書網(wǎng) m.ranfinancial.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號 鄂公網(wǎng)安備 42010302001612號