日本免费精品视频,男人的天堂在线免费视频,成人久久久精品乱码一区二区三区,高清成人爽a毛片免费网站

在線客服
C#高級編程(第10版)圖書
人氣:28

C#高級編程(第10版)

提升C#和.NET技能的必備參考資源 Visual Studio 2015、ASP.NET Core 1.0和Universal Windows Platform的推出,為開發(fā)人員提供了使用C#創(chuàng)建應(yīng)用程序的新方式。作為經(jīng)典C#暢銷書 ,本書涵蓋了充分利用升級功能,積極...

內(nèi)容簡介

提升C#和.NET技能的必備參考資源 Visual Studio 2015、ASP.NET Core 1.0和Universal Windows Platform的推出,為開發(fā)人員提供了使用C#創(chuàng)建應(yīng)用程序的新方式。作為經(jīng)典C#暢銷書 ,本書涵蓋了充分利用升級功能,積極簡化工作流程所需的全部信息。本書循序漸進地講解了Visual Studio 2015、.NET Core 1.0、ASP.NET MVC、Universal Windows Platform、WPF的變化。每一章都提供了清晰的解釋、下載的代碼,并從專家的角度提供了有價值的視野。有本書在手,讀者可以快速獲得的特性和功能。主要內(nèi)容 通過.NET Core 和C# 6的增強功能,重新塑造了.NET平臺,包括新增的.NET編譯器平臺 展示了如何使用新的Visual Studio工具和用于ASP.NET Core 1.0、ASP.NET MVC、Web API、WPF和Universal Windows Platform的模板 介紹允許應(yīng)用程序在Windows、Linux和OS X上運行的.NET Core框架,還囊括了任務(wù)和并行編程,訪問文件系統(tǒng),以及網(wǎng)絡(luò)堆棧 演示了如何使用ASP.NET MVC 6和Web API創(chuàng)建Web應(yīng)用程序,以及利用SignalR和WebHooks的推送通知 介紹專業(yè)開發(fā)功能,例如單元測試,通過MVVM模式在WPF和Universal Windows Platform之間共享代碼

編輯推薦

對于開發(fā)人員,把C#語言和.NET描述為重要的新技術(shù)一點都不夸張。.NET提供了一種環(huán)境。在這種環(huán)境中,可以開發(fā)在Windows上運行的幾乎所有應(yīng)用程序。在Windows上運行的是.NET Framework以前的版本,新版本.NET Core 1.0不僅在Windows上運行,還在Linux和Mac系統(tǒng)上運行。C#是專門用于.NET的編程語言。

作者簡介

Christian Nagel是微軟開發(fā)技術(shù)代言人(Microsoft Regional Director)、Visual Studio和開發(fā)技術(shù)方向的微軟MVP、軟件架構(gòu)師、博學(xué)開發(fā)人員(2000年就開始用.NET技術(shù)建立解決方案) 。他編著過多本.NET圖書,經(jīng)常在TechEd和TechDays等國際會議上發(fā)言,并支持.NET用戶組。Christian是微軟認(rèn)證培訓(xùn)師(MCT),也是Universal Windows apps和ASP.NET方向的微軟認(rèn)證開發(fā)專家(MCPD)。

目錄

第Ⅰ部分 C# 語 言

第1章 .NET應(yīng)用程序體系結(jié)構(gòu) 2

1.1 選擇技術(shù) 2

1.2 回顧.NET歷史 3

1.2.1C# 1.0 ——一種新語言 3

1.2.2帶有泛型的C# 2和.NET 2 5

1.2.3.NET 3.0—— Windows

Presentation Foundation 5

1.2.4C# 3和.NET 3.5—— LINQ 5

1.2.5C# 4和.NET 4.0—— dynamic

和TPL 6

1.2.6C# 5和異步編程 6

1.2.7C# 6和.NET Core 7

1.2.8選擇技術(shù),繼續(xù)前進 8

1.3.NET 2015 8

1.3.1.NET Framework 4.6 9

1.3.2.NET Core 1.0 10

1.3.3程序集 11

1.3.4NuGet 包 12

1.3.5公共語言運行庫 13

1.3.6.NET Native 14

1.3.7Windows 運行庫 14

1.4Hello, World 15

1.5 用.NET 4.6編譯 16

1.6 用.NET CoreCLI編譯 17

1.6.1設(shè)置環(huán)境 18

1.6.2構(gòu)建應(yīng)用程序 18

1.6.3打包和應(yīng)用程序 21

1.7 應(yīng)用程序類型和技術(shù) 22

1.7.1數(shù)據(jù)訪問 22

1.7.2Windows桌面應(yīng)用程序 23

1.7.3UWP 24

1.7.4SOAP服務(wù)和WCF 24

1.7.5Web服務(wù)和ASP.NET Web

API 24

1.7.6WebHooks和SignalR 25

1.7.7Windows服務(wù) 25

1.7.8Web應(yīng)用程序 25

1.7.9Microsoft Azure 26

1.8 開發(fā)工具 27

1.8.1Visual Studio Community 27

1.8.2Visual Studio Professional with

MSDN 27

1.8.3Visual Studio Enterprise with

MSDN 27

1.8.4Visual Studio Code 28

1.9 小結(jié) 28

第2章 核心C# 29

2.1C#基礎(chǔ) 30

2.2 用VisualStudio創(chuàng)建Hello,

World! 30

2.2.1創(chuàng)建解決方案 30

2.2.2創(chuàng)建新項目 31

2.2.3編譯和運行程序 33

2.2.4代碼的詳細(xì)介紹 35

2.3 變量 36

2.3.1初始化變量 37

2.3.2類型推斷 38

2.3.3變量的作用域 39

2.3.4常量 41

2.4 預(yù)定義數(shù)據(jù)類型 41

2.4.1值類型和引用類型 42

2.4.2.NET類型 43

2.4.3預(yù)定義的值類型 43

2.4.4預(yù)定義的引用類型 46

2.5 程序流控制 48

2.5.1條件語句 48

2.5.2循環(huán) 51

2.5.3跳轉(zhuǎn)語句 55

2.6 枚舉 55

2.7 名稱空間 57

2.7.1using語句 58

2.7.2名稱空間的別名 59

2.8Main()方法 60

2.9 使用注釋 61

2.9.1源文件中的內(nèi)部注釋 61

2.9.2XML文檔 62

2.10C#預(yù)處理器指令 63

2.10.1#define和#undef 63

2.10.2#if、#elif、#else和#endif 64

2.10.3#warning和 # error 65

2.10.4#region和#endregion 65

2.10.5#line 65

2.10.6#pragma 65

2.11C#編程準(zhǔn)則 66

2.11.1關(guān)于標(biāo)識符的規(guī)則 66

2.11.2用法約定 67

2.12小結(jié) 70

第3章 對象和類型 71

3.1 創(chuàng)建及使用類 72

3.2 類和結(jié)構(gòu) 72

3.3 類 73

3.3.1字段 73

3.3.2屬性 74

3.3.3方法 76

3.3.4構(gòu)造函數(shù) 81

3.3.5只讀成員 85

3.3.6只讀字段 85

3.4 匿名類型 88

3.5 結(jié)構(gòu) 89

3.5.1結(jié)構(gòu)是值類型 90

3.5.2結(jié)構(gòu)和繼承 91

3.5.3結(jié)構(gòu)的構(gòu)造函數(shù) 91

3.6 按值和按引用傳遞參數(shù) 91

3.6.1ref參數(shù) 92

3.6.2out參數(shù) 93

3.7 可空類型 94

3.8 枚舉 95

3.9 部分類 97

3.10擴展方法 99

3.11Object類 100

3.12小結(jié) 101

第4章 繼承 102

4.1 繼承 102

4.2 繼承的類型 102

4.2.1多重繼承 103

4.2.2結(jié)構(gòu)和類 103

4.3 實現(xiàn)繼承 103

4.3.1虛方法 104

4.3.2多態(tài)性 106

4.3.3隱藏方法 107

4.3.4調(diào)用方法的基類版本 108

4.3.5抽象類和抽象方法 109

4.3.6密封類和密封方法 110

4.3.7派生類的構(gòu)造函數(shù) 110

4.4 修飾符 112

4.4.1訪問修飾符 113

4.4.2其他修飾符 113

4.5 接口 114

4.5.1定義和實現(xiàn)接口 115

4.5.2派生的接口 118

4.6is和as運算符 120

4.7 小結(jié) 121

第5章 托管和非托管的資源 122

5.1 資源 122

5.2 后臺內(nèi)存管理 123

5.2.1值數(shù)據(jù)類型 123

5.2.2引用數(shù)據(jù)類型 125

5.2.3垃圾回收 127

5.3 強引用和弱引用 129

5.4 處理非托管的資源 130

5.4.1析構(gòu)函數(shù)或終結(jié)器 130

5.4.2IDisposable接口 131

5.4.3using語句 132

5.4.4實現(xiàn)IDisposable接口和

析構(gòu)函數(shù) 133

5.4.5IDisposable和終結(jié)器的

規(guī)則 134

5.5 不安全的代碼 135

5.5.1用指針直接訪問內(nèi)存 135

5.5.2指針示例:

PointerPlayground 143

5.5.3使用指針優(yōu)化性能 147

5.6 平臺調(diào)用 150

5.7 小結(jié) 154

第6章 泛型 155

6.1 泛型概述 155

6.1.1性能 156

6.1.2類型安全 157

6.1.3二進制代碼的重用 157

6.1.4代碼的擴展 158

6.1.5命名約定 158

6.2 創(chuàng)建泛型類 158

6.3 泛型類的功能 162

6.3.1默認(rèn)值 163

6.3.2約束 163

6.3.3繼承 166

6.3.4靜態(tài)成員 167

6.4 泛型接口 167

6.4.1協(xié)變和抗變 168

6.4.2泛型接口的協(xié)變 169

6.4.3泛型接口的抗變 170

6.5 泛型結(jié)構(gòu) 171

6.6 泛型方法 173

6.6.1泛型方法示例 174

6.6.2帶約束的泛型方法 175

6.6.3帶委托的泛型方法 176

6.6.4泛型方法規(guī)范 176

6.7 小結(jié) 178

第7章 數(shù)組和元組 179

7.1 同一類型和不同類型的多個

對象 179

7.2 簡單數(shù)組 180

7.2.1數(shù)組的聲明 180

7.2.2數(shù)組的初始化 180

7.2.3訪問數(shù)組元素 181

7.2.4使用引用類型 182

7.3 多維數(shù)組 183

7.4 鋸齒數(shù)組 184

7.5Array類 185

7.5.1創(chuàng)建數(shù)組 185

7.5.2復(fù)制數(shù)組 186

7.5.3排序 187

7.6 數(shù)組作為參數(shù) 190

7.6.1數(shù)組協(xié)變 190

7.6.2ArraySegment 191

7.7 枚舉 191

7.7.1IEnumerator接口 192

7.7.2foreach語句 192

7.7.3yield語句 193

7.8 元組 197

7.9 結(jié)構(gòu)比較 198

7.10小結(jié) 201

第8章 運算符和類型強制轉(zhuǎn)換202

8.1 運算符和類型轉(zhuǎn)換 202

8.2 運算符 203

8.2.1運算符的簡化操作 204

8.2.2運算符的優(yōu)先級和關(guān)聯(lián)性 212

8.3 類型的安全性 213

8.3.1類型轉(zhuǎn)換 213

8.3.2裝箱和拆箱 217

8.4 比較對象的相等性 218

8.4.1比較引用類型的相等性 218

8.4.2比較值類型的相等性 219

8.5 運算符重載 219

8.5.1運算符的工作方式 220

8.5.2運算符重載的示例:Vector

結(jié)構(gòu) 221

8.5.3比較運算符的重載 225

8.5.4可以重載的運算符 227

8.6 實現(xiàn)自定義的索引運算符228

8.7 實現(xiàn)用戶定義的類型強制

轉(zhuǎn)換 230

8.7.1實現(xiàn)用戶定義的類型強制

轉(zhuǎn)換 231

8.7.2多重類型強制轉(zhuǎn)換 237

8.8 小結(jié) 240

第9章 委托、lambda表達式和

事件 241

9.1 引用方法 241

9.2 委托 242

9.2.1聲明委托 242

9.2.2使用委托 243

9.2.3簡單的委托示例 246

9.2.4Action和Func

委托 248

9.2.5BubbleSorter示例 248

9.2.6多播委托 251

9.2.7匿名方法 254

9.3lambda表達式 255

9.3.1參數(shù) 256

9.3.2多行代碼 256

9.3.3閉包 257

9.4 事件 258

9.4.1事件程序 258

9.4.2事件偵聽器 260

9.4.3弱事件 261

9.5 小結(jié) 263

第10章 字符串和正則表達式 264

10.1System.String類 265

10.1.1構(gòu)建字符串 266

10.1.2StringBuilder成員 269

10.2字符串格式 270

10.2.1字符串插值 270

10.2.2日期時間和數(shù)字的格式 272

10.2.3自定義字符串格式 274

10.3正則表達式 275

10.3.1正則表達式概述 275

10.3.2RegularExpressionsPlayaround

示例 276

10.3.3顯示結(jié)果 279

10.3.4匹配、組和捕獲 280

10.4小結(jié) 283

第11章 集合 284

11.1概述 284

11.2集合接口和類型 285

11.3列表 285

11.3.1創(chuàng)建列表 287

11.3.2只讀集合 294

11.4隊列 294

11.5棧 298

11.6鏈表 300

11.7有序列表 305

11.8字典 306

11.8.1字典初始化器 307

11.8.2鍵的類型 307

11.8.3字典示例 308

11.8.4Lookup類 312

11.8.5有序字典 313

11.9集 313

11.10性能 315

11.11小結(jié) 316

第12章 特殊的集合 317

12.1概述 317

12.2處理位 317

12.2.1BitArray類 318

12.2.2BitVector32結(jié)構(gòu) 320

12.3可觀察的集合 323

12.4不變的集合 324

12.4.1使用構(gòu)建器和不變的

集合 327

12.4.2不變集合類型和接口 327

12.4.3使用LINQ和不變的

數(shù)組 328

12.5并發(fā)集合 328

12.5.1創(chuàng)建管道 329

12.5.2使用BlockingCollection 332

12.5.3使用Concurrent-

Dictionary 333

12.5.4完成管道 334

12.6小結(jié) 335

第13章 LINQ 337

13.1LINQ概述 337

13.1.1列表和實體 338

13.1.2LINQ查詢 341

13.1.3擴展方法 342

13.1.4推遲查詢的執(zhí)行 343

13.2標(biāo)準(zhǔn)的查詢操作符 345

13.2.1篩選 347

13.2.2用索引篩選 347

13.2.3類型篩選 348

13.2.4復(fù)合的from子句 348

13.2.5排序 349

13.2.6分組 350

13.2.7LINQ 查詢中的變量 351

13.2.8對嵌套的對象分組 352

13.2.9內(nèi)連接 353

13.2.10左外連接 355

13.2.11組連接 355

13.2.12集合操作 358

13.2.13合并 360

13.2.14分區(qū) 360

13.2.15聚合操作符 362

13.2.16轉(zhuǎn)換操作符 363

13.2.17生成操作符 365

13.3并行LINQ 365

13.3.1并行查詢 365

13.3.2分區(qū)器 366

13.3.3取消 367

13.4表達式樹 367

13.5LINQ提供程序 370

13.6小結(jié) 371

第14章 錯誤和異常 372

14.1簡介 372

14.2異常類 373

14.3捕獲異常 374

14.3.1實現(xiàn)多個catch塊 377

14.3.2在其他代碼中捕獲異常 380

14.3.3System.Exception屬性 380

14.3.4異常過濾器 381

14.3.5重新拋出異常 382

14.3.6沒有處理異常時發(fā)生的

情況 386

14.4用戶定義的異常類 386

14.4.1捕獲用戶定義的異常 387

14.4.2拋出用戶定義的異常 389

14.4.3定義用戶定義的異常類 392

14.5調(diào)用者信息 394

14.6小結(jié) 396

第15章 異步編程 397

15.1異步編程的重要性 397

15.2異步模式 398

15.2.1同步調(diào)用 405

15.2.2異步模式 406

15.2.3基于事件的異步模式 407

15.2.4基于任務(wù)的異步模式 408

15.3異步編程的基礎(chǔ) 410

15.3.1創(chuàng)建任務(wù) 410

15.3.2調(diào)用異步方法 411

15.3.3延續(xù)任務(wù) 411

15.3.4同步上下文 412

15.3.5使用多個異步方法 412

15.3.6轉(zhuǎn)換異步模式 413

15.4錯誤處理 414

15.4.1異步方法的異常處理 415

15.4.2多個異步方法的異常

處理 415

15.4.3使用AggregateException

信息 416

15.5取消 417

15.5.1開始取消任務(wù) 417

15.5.2使用框架特性取消任務(wù) 417

15.5.3取消自定義任務(wù) 418

15.6小結(jié) 419

第16章 反射、元數(shù)據(jù)和動態(tài)編程420

16.1在運行期間檢查代碼和

動態(tài)編程 420

16.2自定義特性 421

16.2.1編寫自定義特性 422

16.2.2自定義特性示例:

WhatsNewAttributes 425

16.3反射 428

16.3.1System.Type類 428

16.3.2TypeView示例 430

16.3.3Assembly類 433

16.3.4完成WhatsNewAttributes

示例 434

16.4為反射使用動態(tài)語言擴展 438

16.4.1創(chuàng)建Calculator庫 438

16.4.2動態(tài)實例化類型 440

16.4.3用反射API調(diào)用成員 442

16.4.4使用動態(tài)類型調(diào)用成員 442

16.5dynamic類型 443

16.6DLR 448

16.7包含DLR ScriptRuntime 449

16.8DynamicObject和

ExpandoObject 451

16.8.1DynamicObject 451

16.8.2ExpandoObject 453

16.9小結(jié) 455

第Ⅱ部分 .NET Core與Windows

Runtime

第17章 Visual Studio 2015 458

17.1使用Visual Studio 2015 458

17.1.1Visual Studio的版本 461

17.1.2Visual Studio設(shè)置 461

17.2創(chuàng)建項目 462

17.2.1面向多個版本的.NET

Framework 463

17.2.2選擇項目類型 464

17.3瀏覽并編寫項目 469

17.3.1構(gòu)建環(huán)境:CLI和

MSBuild 469

17.3.2Solution Explorer 470

17.3.3使用代碼編輯器 477

17.3.4學(xué)習(xí)和理解其他窗口 481

17.3.5排列窗口 485

17.4構(gòu)建項目 485

17.4.1構(gòu)建、編譯和生成代碼 486

17.4.2調(diào)試版本和版本 486

17.4.3選擇配置 488

17.4.4編輯配置 488

17.5調(diào)試代碼 490

17.5.1設(shè)置斷點 490

17.5.2使用數(shù)據(jù)提示和調(diào)試器可

視化工具 491

17.5.3Live Visual Tree 492

17.5.4監(jiān)視和修改變量 493

17.5.5異常 494

17.5.6多線程 495

17.6重構(gòu)工具 495

17.7體系結(jié)構(gòu)工具 497

17.7.1代碼地圖 498

17.7.2層關(guān)系圖 499

17.8分析應(yīng)用程序 500

17.8.1診斷工具 500

17.8.2Concurrency Visualizer 504

17.8.3代碼分析器 505

17.8.4Code Metrics 506

17.9小結(jié) 506

第18章 .NET編譯器平臺 507

18.1簡介 507

18.2編譯器管道 509

18.3語法分析 509

18.3.1使用查詢節(jié)點 515

18.3.2遍歷節(jié)點 517

18.4

網(wǎng)友評論(不代表本站觀點)

免責(zé)聲明

更多出版社