图书介绍

C#技术揭秘【2025|PDF下载-Epub版本|mobi电子书|kindle百度云盘下载】

C#技术揭秘
  • (美)Tom Archer,(美)Andrew Whitechapel著;马朝晖等译 著
  • 出版社: 北京:机械工业出版社
  • ISBN:7111122577
  • 出版时间:2003
  • 标注页数:597页
  • 文件大小:61MB
  • 文件页数:619页
  • 主题词:C语言-程序设计

PDF下载


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

下载说明

C#技术揭秘PDF格式电子书版下载

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

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

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

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

图书目录

目录译者序序一序二前言第一部分C#类的基本原理第1章 建立C#应用程序和库2

1.1 “Hello,World”——命令行版本2

1.2 “Hello,World”的代码解释4

1.2.1一站式编程4

1.2.2名称空间4

1.2.3类和成员6

1.2.4 Main方法6

1.2.5 System.Console.WriteLine方法7

1.2.6名称空间和using指令7

1.2.7框架代码8

1.2.8类的二义性9

1.3“Hello,World”——Visual Studio.NET版本10

1.4编译和运行.NET应用程序11

1.5 “Hello,World”内部13

1.6配件和模块16

1.6.1配件概述16

1.6.2配件的好处17

1.6.3构建配件18

1.6.4创建共享配件21

1.6.5使用全局配件缓存23

1.7小结24

第2章 .NET类型系统25

2.1所有东西都是对象25

2.2.1值类型27

2.2值类型和引用类型27

2.3装箱和拆箱28

2.2.2引用类型28

2.3.1将值类型转换为引用类型29

2.3.2将引用类型转换为值类型29

2.3.3更多的装箱例子30

2.4类型和别名34

2.5类型之间的转换34

2.6 CTS的好处36

2.6.1语言互操作性36

2.6.3类型安全37

2.7小结37

2.6.2单根的对象层次结构37

第3章 类和结构38

3.1定义类38

3.2类成员39

3.3访问修饰符40

3.4 Main方法41

3.4.1命令行参数41

3.4.2从Main方法返回值42

3.4.3多个Main方法43

3.5构造器44

3.5.1静态成员和实例成员46

3.5.2构造器初始化器47

3.5.3在构造器初始化器中指定运行时信息51

3.6常量与只读字段54

3.6.1常量54

3.6.2只读字段54

3.7继承57

3.7.1多个接口59

3.7.2封闭的类60

3.8在C#中定义结构61

3.8.1结构的使用61

3.8.2使用结构的原则63

3.9小结65

4.1值和引用参数66

第4章 方法66

4.1.1 ref方法参数67

4.1.2 out方法参数70

4.2再论值和引用参数73

4.3方法重载77

4.3.1重载构造器79

4.3.2继承与重载81

4.4可变的方法参数82

4.5虚拟方法85

4.5.1方法重定义85

4.5.2多态性86

4.5.3 new和虚拟方法91

4.5.4从构造器调用虚拟方法93

4.6静态方法95

4.6.1访问类成员96

4.6.2静态构造器97

4.7小结98

第5章 特性、数组和索引器99

5.1特性是灵巧字段99

5.1.1定义和使用特性100

5.1.2特性的内幕101

5.1.3继承特性104

5.1.4特性的高级用途108

5.2数组109

5.2.1声明数组109

5.2.2一维数组示例110

5.2.3多维数组111

5.2.4查询秩112

5.2.5锯齿形数组113

5.3使用索引器像对待数组那样对待对象115

5.3.1定义索引器115

5.3.2索引器例子116

5.3.3索引器的内幕117

5.3.4设计原则118

5.4小结119

第6章 属性120

6.1属性简介120

6.2定义属性121

6.3.1类属性124

6.3查询属性124

6.3.2方法属性126

6.3.3字段属性128

6.4属性参数129

6.4.1位置参数和命名参数130

6.4.2使用命名过的参数时的常见错误131

6.4.3有效的属性参数类型132

6.5 AttributeUsage属性132

6.5.1定义属性目标132

6.5.2单次使用和多次使用的属性134

6.5.3指定属性继承规则134

6.6属性标识符136

6.7预定义的属性138

6.7.1 Conditional属性139

6.7.2 Obsolete属性141

6.7.3 CLSCompliant属性141

6.7.4 Dlllmport和StructLayout属性142

6.7.5配件属性144

6.8上下文属性144

6.9小结150

第7章 接口151

7.1接口的用途151

7.2声明接口152

7.3实现接口153

7.3.1使用is查询实现155

7.3.2使用as查询实现158

7.3.3接口与替代技术161

7.4显式地限定接口成员名163

7.4.1用接口进行名称隐藏163

7.4.2避免名称的二义性165

7.5接口与继承169

7.6组合接口172

7.7小结173

第二部分编写代码第8章 表达式和操作符176

8.1操作符的定义176

8.2操作符的优先级176

8.2.2左结合性和右结合性177

8.2.1 c#如何决定优先级177

8.2.3实际使用178

8.3 c#操作符178

8.3.1基本表达式操作符179

8.3.2算术操作符183

8.4数值转换190

8.5位操作符193

8.6关系操作符196

8.7简单赋值操作符197

8.8条件操作符200

8.9小结202

9.1选择语句203

9.1.1 if语句203

第9章 程序流控制203

9.1.2 switch语句207

9.2迭代语句214

9.2.1 while语句214

9.2.2 do/while语句215

9.2.3 for语句217

9.2.4 foreach语句220

9.3使用跳转语句进行分支223

9.3.1 break语句223

9.3.2 continue语句225

9.3.3声名狼藉的goto语句227

9.3.4 return语句232

9.4小结233

第10章 字符串处理和正则表达式234

10.1字符串234

10.1.1字符串的格式化236

10.1.2格式指定符238

10.1.3对象和ToString240

10.1.4数字字符串分析241

10.1.5字符串和DateTime243

10.1.6字符串的编码方式245

10.1.7 StringBuilder类246

10.1.8分解字符串247

10.1.9扩展字符串248

10.1.10字符串扣留249

10.2正则表达式251

10.2.1 Match和MatchCollection254

10.2.2组和捕获257

10.2.3字符串-修改表达式258

10.2.4正则表达式选项261

10.2.5编译正则表达式262

10.3小结265

第11章 用流进行文件I/O266

11.1 流类266

11.1.1 FileStream267

11.1.2 StreamReader和StreamWriter269

11.1.3内存和缓冲流271

11.1.4字符串读取器和写出器274

11.1.5二进制读取器和写出器275

11.2文件系统类277

11.2.1 Directory和DirectoryInfo277

11.2.2 File和FileInfo279

11.2.3分析路径281

11.3流的非控制台使用方式282

11.3.1 Windows OpenFileDialog282

11.3.2读取Web页面283

11.4串行化284

11.4.1使用BinaryFormatter进行串行化285

11.4.2使用SoapFormatter287

11.4.3使用XmlSerializer进行串行化288

11.4.4实现ISerializable289

11.5小结291

第12章 用异常进行错误处理292

12.1异常处理概述292

12.2基本的异常处理语法293

12.2.1抛出异常293

12.2.2捕获异常294

12.2.3重新抛出一个异常296

12.2.4使用finally进行清理298

12.3重试代码301

12.4错误处理技术的比较303

12.4.1异常处理相对于返回编码的好处303

12.4.2在正确的上下文中处理错误305

12.4.3提高代码的可读性306

12.4.4从构造器抛出异常307

12.5使用System.Exception类307

12.5.1构造一个Exception对象307

12.5.2使用StaekTrace特性310

12.5.3捕获多个异常类型311

12.5.4派生自己的Exception类312

12.6用异常处理设计代码314

12.6.1 try块的设计问题314

12.6.2 catch块的设计问题317

12.7小结319

13.1操作符重载320

13.1.1操作符重载的语法320

第13章 操作符重载和用户定义的转换320

13.1.2操作符重载的规则和限制321

13.1.3操作符重载示例322

13.1.4 RGB颜色递增示例324

13.1.5操作符重载的设计方针328

13.2用户定义的转换330

13.2.1用户定义的转换语法330

13.2.2用户定义的转换的规则和限制330

13.2.3用户定义的转换示例331

13.3小结341

第14章 委托和事件处理器342

14.1将委托作为回调方法使用342

14.2委托的内幕344

14.3将委托定义为静态成员347

14.4只在需要时创建委托349

14.5多点委托351

14.6使用多点委托定义事件359

14.7小结362

第15章 使用XML进行文档记录363

15.1入门363

15.1.1添加元素365

15.1.2可以接受注释的代码构造365

15.2编译器产生的元素ID365

15.2.1字段、特性、事件和索引器366

15.2.2方法368

15.3 良构的XML372

15.4注释网页373

15.5元素标记和属性374

15.5.1〈exception〉标记和cref属性375

15.5.2 〈c〉、〈code〉和〈example〉标记375

15.5.3〈include〉标记376

15.5.4 〈list〉标记378

15.6定制的格式化379

15.7 XML与数据381

15.8 小结382

第三部分高级C#第16章 数值处理和Marh类384

16.1 C#和.NET中的数值支持384

16.1.1 Decimal类型是原始的类型吗385

16.1.2数值后缀386

16.1.3数值类型的各种名称387

16.1.4数值字面值388

16.2整数范围和溢出规则390

16.3 Decimal类型394

16.4 System.Math类394

16.4.1 System.Math常量394

16.4.2处理数值的正负号394

16.4.3最小值和最大值395

16.4.4用于取整和截短的方法395

16.5小结396

17.1实现枚举接口397

第17章 集合和对象枚举397

17.1.1使用枚举器对象400

17.1.2使用foreach语句处理集合401

17.2为什么需要两个接口403

17.3构造枚举器对象403

17.4创建具有版本的枚举器404

17.5将IEnumerable和IEnumerator合并407

17.6在允许枚举时保护数据409

17.7值类型411

17.7.1性能问题412

17.7.2修改值类型的集合数据419

17.8小结422

18.1线程入门423

第18章 多线程和异步编程423

18.2线程处理的基本知识424

18.2.1创建线程和Thread对象424

18.2.2管理线程的生存周期424

18.2.3销毁线程426

18.2.4对线程进行调度428

18.3与线程进行数据通信432

18.4线程安全和同步434

18.4.1使用Monitor类保护代码434

18.4.2通过C#lock语句使用监视锁440

18.4.3使用Mutex类对代码进行同步441

18.5使用委托调用异步方法443

18.7.1何时应该使用线程447

18.6线程安全和.NET类447

18.7线程方针447

18.7.2何时不应该使用线程448

18.8小结449

第19章 利用反射查询元数据450

19.1 ReflectionAPI层次结构450

19.2rype类450

19.3获得Type引用450

19.3.1获取一个实例的类型451

19.3.2从名称获取类型451

19.3.3查询类型452

19.4.1遍历配件的类型455

19.4处理配件和模块455

19.4.2列出配件的模块459

19.5使用反射进行晚绑定461

19.6使用反射实现抽象工厂463

19.7动态地生成代码465

19.8小结468

第20章 固定和内存管理469

20.1垃圾收集469

20.2重定义Finalize470

20.3强行进行垃圾收集474

20.4 Dispose模式476

20.5 IDisposable接口479

20.5.1派生的可处置类481

20.5.2防止重复处置482

20.5.3对Dispose的语言支持483

20.6垃圾收集器代484

20.7弱引用486

20.8不安全的代码487

20.9固定490

20.9.1固定数组元素492

20.9.2间接引用成员操作符495

20.9.3使用stackalloc496

20.10 小结498

第21章 从C#应用程序使用COM499

21.1 COM在当今的.NET环境中处于什么位置499

21.2.1创建ATL组件500

21.2从C#使用COM组件500

21.2.2从.NET应用程序使用COM组件501

21.2.3绑定和使用COM组件502

21.2.4使用COM组件进行动态类型发现504

21.2.5对COM对象进行晚绑定505

21.3事件处理507

21.3.1 COM连接点的工作原理507

21.3.2创建一个产生事件的ATLCOM组件508

21.3.3使用委托进行事件处理510

21.3.4在.NET应用程序中接收非托管的COM事件512

21.4使用COM集合515

21.4.1使用ATL创建COM集合对象515

21.4.2在.NET应用程序中使用COM集合519

21.4.3遍历.NET集合中的元素520

21.5在托管代码中重用COM组件522

21.5.1包含522

21.5.2聚合522

21.5.3通过混合模式的继承进行重用523

21.5.4通过混合模式的包含进行重用526

21.5.5NET对COM线程模型和场所的感知527

21.6将方法关键字映射到IDL属性528

21.7小结529

第22章 在非托管代码中使用.NET组件530

22.1通过COM创建和使用.NET组件530

22.1.1从配件产生类型库和注册配件531

22.1.2从Visual Basic 6客户使用组件532

22.1.3 COM interop的内部机理533

22.1.4探究产生的类型库534

22.2使用属性影响产生的类型库元数据540

22.2.1修改接口类型540

22.2.2修改GUID和ProgID542

22.2.3对COM隐藏公共类型543

22.2.4修改类型的编组行为544

22.3异常处理:.NET与COM544

22.4在非托管事件接收器中处理来自.NET组件的事件546

22.4.1创建产生事件的.NET组件547

22.4.2在Visual Basic客户应用程序中处理事件549

22.5.NET组件中的线程从属关系550

22.6小结555

第23章 安全性556

23.1.NET安全性556

23.2可检验的类型安全557

23.3代码签名561

23.3.1私有配件561

23.3.2强名称配件563

23.3.3全局配件缓存566

22.3.4延迟签名配件568

23.4密码服务569

23.5.1证据571

23.5代码访问安全性571

23.5.2安全策略572

23.5.3配置安全575

23.5.4 CASpol579

23.5.5强制式和声明式CAS581

23.5.6标识权限582

23.5.7配件权限请求584

23.6基于角色的安全585

23.6.1 PrincipalPermission请求587

23.6.2模仿588

23.7隔离的存储589

23.8小结590

附录A MSIL指令表592

热门推荐