图书介绍

C#本质论 原书第4版2025|PDF|Epub|mobi|kindle电子书版本百度云盘下载

C#本质论 原书第4版
  • (美)米凯利斯,(美)利珀特著 著
  • 出版社: 北京:人民邮电出版社
  • ISBN:9787115336750
  • 出版时间:2014
  • 标注页数:652页
  • 文件大小:102MB
  • 文件页数:677页
  • 主题词:C语言-程序设计

PDF下载


点此进入-本书在线PDF格式电子书下载【推荐-云解压-方便快捷】直接下载PDF格式图书。移动端-PC端通用
种子下载[BT下载速度快]温馨提示:(请使用BT下载软件FDM进行下载)软件下载地址页直链下载[便捷但速度慢]  [在线试读本书]   [在线获取解压码]

下载说明

C#本质论 原书第4版PDF格式电子书版下载

下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。

建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!

(文件页数 要大于 标注页数,上中下等多册电子书除外)

注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具

图书目录

第1章C#概述1

1.1 Hello, World1

1.2 C#语法基础3

1.2.1 C#关键字3

1.2.2标识符4

1.2.3类型定义5

1.2.4 Main6

1.2.5语句和语句分隔符7

1.2.6空白8

1.2.7使用变量8

1.2.8数据类型9

1.2.9变量的声明9

1.2.10变量的赋值10

1.2.11变量的使用11

1.3控制台输入和输出11

1.3.1从控制台获取输入11

1.3.2将输出写入控制台12

1.3.3注释14

1.3.4托管执行和公共语言基础结构16

1.3.5 C#和.NET版本17

1.3.6 CIL和ILDASM18

1.4小结20

第2章 数据类型21

2.1基本数值类型21

2.1.1整数类型22

2.1.2浮点类型23

2.1.3 decimal类型23

2.1.4字面值24

2.2更多基本类型27

2.2.1布尔类型27

2.2.2字符类型27

2.2.3字符串29

2.3 null和void34

2.3.1 null34

2.3.2 void35

2.4类型的分类37

2.4.1值类型37

2.4.2引用类型37

2.5可空修饰符38

2.6数据类型之间的转换39

2.6.1显式转型39

2.6.2隐式转型41

2.6.3不使用转型操作符的类型转换42

2.7数组43

2.7.1数组的声明44

2.7.2数组的实例化和赋值45

2.7.3数组的使用48

2.7.4字符串作为数组使用52

2.7.5常见数组错误53

2.8小结55

第3章 操作符和控制流57

3.1操作符57

3.1.1一元操作符正和负58

3.1.2二元算术操作符58

3.1.3复合赋值操作符64

3.1.4递增和递减操作符65

3.1.5常量表达式和常量符号68

3.2控制流程概述69

3.2.1 if语句70

3.2.2嵌套if71

3.3代码块73

3.4代码块、作用域和声明空间74

3.5布尔表达式76

3.5.1关系操作符和相等性操作符77

3.5.2逻辑布尔操作符77

3.5.3逻辑求反操作符78

3.5.4条件操作符79

3.5.5空接合操作符80

3.6按位操作符80

3.6.1移位操作符81

3.6.2按位操作符82

3.6.3按位赋值操作符83

3.6.4按位取反操作符84

3.7控制流语句(续)84

3.7.1 while和do/while循环84

3.7.2 for循环86

3.7.3 foreach循环88

3.7.4 switch语句90

3.8跳转语句92

3.8.1 break语句92

3.8.2 continue语句94

3.8.3 goto语句95

3.9 C#预处理指令97

3.9.1排除和包含代码98

3.9.2定义预处理符号98

3.9.3生成错误和警告99

3.9.4关闭警告消息99

3.9.5 nowarn:〈warn list〉选项99

3.9.6指定行号100

3.9.7可视编辑器提示100

3.10小结101

第4章 方法和参数103

4.1方法的调用104

4.1.1命名空间105

4.1.2类型名称106

4.1.3作用域107

4.1.4方法名称107

4.1.5形参和实参107

4.1.6方法返回值107

4.1.7语句与方法调用的比较108

4.2方法的声明108

4.2.1形式参数声明109

4.2.2方法返回类型声明110

4.3 using指令111

4.4 Main()的返回值和参数114

4.5方法的参数116

4.5.1值参数116

4.5.2引用参数(ref)117

4.5.3输出参数(out)118

4.5.4参数数组120

4.6递归122

4.7方法重载124

4.8可选参数126

4.9用异常实现基本错误处理129

4.9.1捕捉错误130

4.9.2使用throw语句报告错误136

4.10小结138

第5章类139

5.1类的定义和实例化141

5.2实例字段144

5.2.1实例字段的声明144

5.2.2实例字段的访问144

5.3实例方法145

5.4使用this关键字146

5.5访问修饰符151

5.6属性153

5.6.1属性的声明154

5.6.2自动实现的属性155

5.6.3属性和字段的设计编码规范157

5.6.4提供属性验证157

5.6.5只读和只写属性159

5.6.6为取值方法和赋值方法指定访问修饰符160

5.6.7属性作为虚字段使用161

5.6.8属性和方法调用不允许作为ref或out参数值使用163

5.7构造器164

5.7.1构造器的声明164

5.7.2默认构造器165

5.7.3对象初始化器166

5.7.4构造器的重载167

5.7.5构造器链:使用this调用另一个构造器168

5.8静态成员172

5.8.1静态字段172

5.8.2静态方法174

5.8.3静态构造器175

5.8.4静态属性176

5.8.5静态类177

5.9扩展方法178

5.10封装数据179

5.10.1 const179

5.10.2 readonly180

5.11嵌套类181

5.12分部类183

5.12.1定义分部类183

5.12.2分部方法184

5.13小结186

第6章 继承187

6.1派生188

6.1.1基类型和派生类型之间的转型190

6.1.2private访问修饰符191

6.1.3 protected访问修饰符192

6.1.4扩展方法193

6.1.5单继承194

6.1.6密封类195

6.2基类的重写196

6.2.1 virtual修饰符196

6.2.2 new修饰符199

6.2.3 sealed修饰符202

6.2.4 base成员203

6.2.5构造器204

6.3抽象类204

6.4所有类都从System.Object派生208

6.5使用is操作符验证基础类型209

6.6使用as操作符进行转换210

6.7小结211

第7章 接口213

7.1接口概述213

7.2通过接口实现多态性215

7.3接口实现218

7.3.1显式成员实现220

7.3.2隐式成员实现221

7.3.3显式接口实现与隐式接口实现的比较221

7.4在实现类和接口之间转换222

7.5接口继承222

7.6多接口继承224

7.7接口上的扩展方法225

7.8通过接口实现多继承226

7.9版本控制228

7.10接口与类的比较229

7.11接口与特性的比较230

7.12小结230

第8章 值类型231

8.1结构231

8.1.1结构的初始化235

8.1.2 default操作符的使用237

8.1.3值类型的继承和接口237

8.2装箱238

8.3枚举243

8.3.1枚举之间的类型兼容性246

8.3.2枚举和字符串之间的转换246

8.3.3枚举作为标志使用248

8.4小结251

第9章 良构类型253

9.1重写object的成员253

9.1.1重写ToString()253

9.1.2重写GetHashCode()254

9.1.3重写Equals()256

9.2操作符重载263

9.2.1比较操作符264

9.2.2二元操作符265

9.2.3赋值与二元操作符的结合266

9.2.4条件逻辑操作符266

9.2.5一元操作符267

9.2.6转换操作符268

9.2.7转换操作符的规范269

9.3引用其他程序集269

9.3.1更改程序集目标270

9.3.2引用程序集270

9.3.3类型封装271

9.4定义命名空间272

9.5 XML注释275

9.5.1将XML注释与代码构造关联到一起275

9.5.2生成XML文档文件277

9.6垃圾回收278

9.7资源清理280

9.7.1终结器280

9.7.2使用using语句进行确定性终结282

9.7.3垃圾回收、终结和IDisposable284

9.8推迟初始化286

9.9小结288

第10章 异常处理289

10.1多异常类型289

10.2捕捉异常291

10.3常规catch块293

10.4异常处理的规范295

10.5定义自定义异常297

10.6封装异常并重新引发299

10.7小结302

第11章 泛型303

11.1如果C#没有泛型303

11.2泛型类型概述307

11.2.1泛型类的使用308

11.2.2简单泛型类的定义309

11.2.3泛型的优点310

11.2.4类型参数命名规范310

11.2.5泛型接口和结构311

11.2.6构造器和终结器的定义313

11.2.7默认值的指定313

11.2.8多个类型参数314

11.2.9元数315

11.2.10嵌套泛型类型316

11.3约束317

11.3.1接口约束319

11.3.2类类型约束320

11.3.3 struct/class约束321

11.3.4多个约束321

11.3.5构造器约束322

11.3.6约束继承323

11.4泛型方法327

11.4.1泛型方法类型推断328

11.4.2约束的指定328

11.5协变性和逆变性330

11.5.1在C# 4.0中使用out类型参数修饰符允许协变性331

11.5.2在C# 4.0中使用in类型参数修饰符允许逆变性332

11.5.3数组对不安全协变性的支持335

11.6泛型的内部机制335

11.6.1基于值类型的泛型的实例化336

11.6.2基于引用类型的泛型的实例化337

11.7小结338

第12章 委托和Lambda表达式339

12.1委托概述340

12.1.1背景340

12.1.2委托数据类型341

12.1.3委托类型的声明342

12.1.4委托的实例化343

12.2 Lambda表达式347

12.2.1语句Lambda347

12.2.2表达式Lambda349

12.3匿名方法351

12.4通用的委托:System.Func和System.Action352

12.4.1委托没有结构相等性353

12.4.2外部变量355

12.4.3表达式树359

12.5小结364

第13章 事件365

13.1使用多播委托来编码Observer模式366

13.1.1定义订阅者方法366

13.1.2定义发布者367

13.1.3连接发布者和订阅者368

13.1.4调用委托368

13.1.5检查null值369

13.1.6委托操作符370

13.1.7顺序调用371

13.1.8错误处理374

13.1.9方法返回值和传引用376

13.2事件376

13.2.1事件的作用376

13.2.2事件的声明378

13.2.3编码规范379

13.2.4泛型和委托380

13.2.5自定义事件的实现383

13.3小结384

第14章 支持标准查询操作符的集合接口385

14.1匿名类型和隐式类型的局部变量声明386

14.1.1匿名类型386

14.1.2隐式类型的局部变量387

14.1.3匿名类型和隐式局部变量的更多注意事项388

14.2集合初始化器390

14.3是什么使类成为集合:IEnumerable〈T〉392

14.3.1 foreach和数组392

14.3.2 foreach和IEnumerable〈T〉393

14.3.3 foreach循环内不要修改集合396

14.4标准查询操作符397

14.4.1使用Where()来筛选400

14.4.2使用Select()来投射401

14.4.3使用Count()对元素进行计数403

14.4.4推迟执行404

14.4.5使用OrderBy()和ThenBy()来排序408

14.4.6使用Join()来执行内部联接412

14.4.7使用GroupBy分组结果415

14.4.8使用GroupJoin()实现一对多关系416

14.4.9调用Selectmany()418

14.4.10更多标准查询操作符420

14.5小结423

第15章使用查询表达式的LINQ425

15.1查询表达式概述426

15.1.1投射427

15.1.2筛选432

15.1.3排序433

15.1.4 let子句434

15.1.5分组435

15.1.6使用into进行查询延续437

15.1.7用多个from子句“平整”序列的序列438

15.2查询表达式作为方法调用439

15.3小结440

第16章 构建自定义集合441

16.1更多集合接口442

16.1.1IList〈T〉与IDictionary 〈TKey, TValue〉442

16.1.2 ICollection〈T〉443

16.2主要集合类443

16.2.1列表集合:List〈T〉443

16.2.2全序446

16.2.3搜索List〈T〉447

16.2.4字典集合:Dictionary 〈TKey, TValue〉449

16.2.5已排序集合:SortedDictionary〈TKey,TValue〉和SortedList〈T〉453

16.2.6栈集合:Stack〈T〉454

16.2.7队列集合:Queue〈T〉455

16.2.8链表:LinkedList〈T〉456

16.3提供索引器456

16.4返回null或者空集合459

16.5迭代器459

16.5.1迭代器的定义460

16.5.2迭代器语法460

16.5.3从迭代器生成值461

16.5.4迭代器和状态463

16.5.5更多的迭代器例子464

16.5.6将yield return语句放到循环中465

16.5.7取消更多的迭代:yield break467

16.5.8在单个类中创建多个迭代器469

16.5.9 yield语句的要求470

16.6小结470

第17章反射、特性和动态编程471

17.1反射471

17.1.1使用System.Type访问元数据472

17.1.2成员调用473

17.1.3泛型类型上的反射478

17.2特性479

17.2.1自定义特性482

17.2.2查找特性483

17.2.3使用构造器来初始化特性484

17.2.4 System.AttributeUsage- Attribute488

17.2.5命名参数488

17.3使用动态对象进行编程498

17.3.1使用dynamic调用反射499

17.3.2 dynamic的原则和行为500

17.3.3为什么需要动态绑定501

17.3.4静态编译与动态编程的比较502

17.3.5实现自定义动态对象503

17.4小结505

第18章多线程处理507

18.1多线程基础509

18.2使用System.Threading512

18.2.1使用System.Threading. Thread进行异步操作512

18.2.2线程管理514

18.2.3在生产代码中不要让线程进入睡眠514

18.2.4在生产代码中不要中止线程515

18.2.5线程池处理516

18.3异步任务517

18.3.1从Thread到Task518

18.3.2理解异步任务518

18.3.3任务延续521

18.3.4用AggregateException处理Task上的未处理异常525

18.4取消任务530

18.4.1 Task.Run()是Task.Factory. StartNew()的简化形式532

18.4.2长时间运行的任务532

18.4.3对任务进行资源清理533

18.5 C# 5.0基于任务的异步模式533

18.5.1以同步方式调用高延迟操作534

18.5.2使用TPL异步调用高延迟操作535

18.5.3通过async和await实现基于任务的异步模式538

18.5.4异步Lambda541

18.5.5任务调度器和同步上下文546

18.5.6 async/await和Windows UI547

18.5.7 await操作符548

18.6并行迭代549

18.7并行执行LINQ查询556

18.8小结560

第19章线程同步561

19.1为什么要同步562

19.1.1使用Monitor来同步565

19.1.2使用lock关键字567

19.1.3 lock对象的选择568

19.1.4为什么要避免锁定this、 typeof (type)和string569

19.1.5将字段声明为volatile570

19.1.6使用System.Threading.Interlocked类570

19.1.7多个线程时的事件通知571

19.1.8同步设计最佳实践572

19.1.9更多的同步类型573

19.1.10线程本地存储580

19.2计时器583

19.3小结584

第20章 平台互操作性和不安全的代码585

20.1在C#中使用WinRT库586

20.1.1具有自定义Add/Remove处理程序的WinRT事件586

20.1.2自动变换的接口587

20.1.3基于任务的异步587

20.2平台调用588

20.2.1外部函数的声明588

20.2.2参数的数据类型588

20.2.3使用ref而不是指针590

20.2.4为顺序布局使用StructLayoutAttribute590

20.2.5错误处理591

20.2.6使用SafeHandle593

20.2.7外部函数的调用595

20.2.8用包装器简化API调用597

20.2.9函数指针映射到委托598

20.2.10编码规范598

20.3指针和地址598

20.3.1不安全的代码598

20.3.2指针的声明599

20.3.3指针的赋值600

20.3.4指针的解引用602

20.3.5访问被引用物类型的成员604

20.3.6通过委托执行不安全的代码604

20.4小结606

第21章CLI607

21.1 CLI的定义607

21.2 CLI实现608

21.3 C#编译成机器码609

21.4运行时611

21.4.1垃圾回收611

21.4.2.NET的垃圾回收611

21.4.3类型安全612

21.4.4代码访问安全性612

21.4.5平台可移植性612

21.4.6性能613

21.5应用程序域614

21.6程序集、清单和模块614

21.7公共中间语言616

21.8公共类型系统616

21.9公共语言规范617

21.10基类库617

21.11元数据617

21.12小结618

附录A下载和安装C#编译器与CLI平台619

附录B井字棋源代码清单621

附录CTPL和C# 5.0之前的多线程模式627

附录D C#5.0 async/await模式之前的计时器649

热门推荐