
| 这是一本任何一个想了解.NET、学习.NET的读者都不可不读的开山之作。它全面剖析了.NET框架机理,深度阐述了.NET平台思想。它在亚马逊网站雄踞编程类图书销量排行榜榜首达14个月之久。 |
| 作者简介:Jeffrey Richter是一位在全球享有盛誉的技术作家,尤其在Windows/.NET领域有着杰出的贡献。他的第一本Windows著作Windows 3: A Developer's Guide大获好评,从而声名远扬。之后,他又推出了经典著作《Windows 高级编程指南》和《Windows核心编程》。如今这两本书早已成为Windows程序设计领域的颠峰之作,培育了几代软件开发设计人员。他的每一本新作问世,我们都有理由相信这是一本巨著,我们想要的一切尽在其中。Jeffery 是Wintellect公司的创始人之一,也是MSDN杂志.NET专栏的特邀编辑。.. << 查看详细 |
| 前言? 第ⅰ部分 microsoft .net框架基本原理 第1章 microsoft .net框架开发平台体系架构3 1.1 将源代码编译为托管模块3 1.2 将托管模块组合为程序集7 1.3 加载通用语言运行时9 1.4 执行程序集代码11 1.4.1 il与代码验证19 1.5 .net框架类库21 1.6 通用类型系统24 1.7 通用语言规范27 1.8 与非托管代码互操作31 第2章 生成、打包、部署及管理应用程序与类型35 2.1 .net框架部署目标36 2.2 将类型生成为模块37 2.3 将模块组合为程序集45 2.3.1 使用visual studio .netide为项目添加程序集引用52 2.3.2 使用程序集链接器53 2.3.3 在程序集中包含资源文件55 2.4 程序集版本资源信息56 .2.4.1 版本号59 2.5 语言文化61 2.6 简单应用程序部署(私有部署程序集)63 2.7 简单管理控制(配置)64 第3章 共享程序集71 3.1 两种程序集、两种部署方式72 3.2 强命名程序集73 3.3 全局程序集缓存79 3.3.1 gac的内部结构85 3.4 引用强命名程序集87 3.5 强命名程序集的防篡改特性89 3.6 延迟签名90 3.7 强命名程序集的私有部署95 3.8 并存执行96 3.9 clr如何解析类型引用98 3.10 高级管理控制(配置)101 3.10.1 发布者策略控制106 3.11 修复错误的应用程序109 第ⅱ部分 类型与通用语言运行时 第4章 类型基础115 4.1 所有类型的基类型:system.object115 4.2 类型转换117 4.2.1 使用is和as操作符转型119 4.3 命名空间与程序集121 第5章 基元类型、引用类型与值类型127 5.1 基元类型127 5.1.1 checked与unchecked基元类型操作131 5.2 引用类型与值类型134 5.3 值类型的装箱与拆箱141 第6章 通用对象操作153 6.1 对象的等值性与惟一性153 6.1.1 为基类没有重写object. equals方法的引用类型实现equals154 6.1.2 为基类重写了object.equals方法的引用类型实现equals156 6.1.3 为值类型实现equals方法157 6.1.4 equals方法与==/!=操作符的实现总结160 6.1.5 对象惟一性识别161 6.2 对象的散列码162 6.3 对象克隆164 第ⅲ部 分类型设计 第7章 类型成员及其访问限定169 7.1 类型成员169 7.2 访问限定修饰符和预定义特性173 7.2.1 类型预定义特性174 7.2.2 字段预定义特性175 7.2.3 方法预定义特性175 第8章 常数与字段177 8.1 常数177 8.2 字段178 第9章 方法181 9.1 实例构造器181 9.2 类型构造器187 9.3 操作符重载方法190 9.3.1 操作符与语言互操作性193 9.4 转换操作符方法197 9.5 引用参数200 9.6 可变数目参数206 9.7 虚方法的调用机理209 9.8 虚方法的版本问题210 第10章 属性215 10.1 无参属性215 10.2 含参属性220 第11章 事件227 11.1 发布事件228 11.2 侦听事件234 11.3 显式控制事件注册236 11.4 在一个类型中定义多个事件238 11.5 设计eventhandlerset类型243 第ⅳ部分 基本类型 第12章 文本处理249 12.1 字符249 12.2 system.string类型253 12.2.1 创建字符串253 12.2.2 字符串的恒定性255 12.2.3 字符串比较256 12.2.4 字符串驻留262 12.2.5 字符串池技术266 12.2.6 查看字符串中的字符266 12.2.7 其他字符串操作270 12.3 高效地动态创建字符串270 12.3.1 构造stringbuilder对象271 12.3.2 stringbuilder的成员272 12.4 获取对象的字符串表达形式275 12.4.1 特定格式与语言文化276 12.4.2 将多个对象格式化为一个字符串280 12.4.3 提供自定义格式化器282 12.5 通过解析字符串获取对象285 12.6 编码:字符与字节之间的转换289 12.6.1 字符与字节的编码/解码流296 12.6.2 base-64字符串编码与解码298 第13章 枚举类型与位标记299 13.1 枚举类型299 13.2 位标记305 第14章 数组309 14.1 所有数组的基类:system.array312 14.2 数组的转型315 14.3 数组的传递与返回316 14.4 创建下限非0的数组318 14.5 快速数组访问319 14.6 重新调整数组长度323 第15章 接口325 15.1 接口与继承325 15.2 设计支持插件组件的应用程序331 15.3 使用接口改变已装箱值类型中的字段333 15.4 实现多个有相同方法的接口336 15.5 显式接口成员实现338 第16章 定制特性345 16.1 使用定制特性345 16.2 定义自己的特性349 16.3 特性构造器与字段/属性的数据类型353 16.4 检测定制特性354 16.5 特性实例间的匹配359 16.6 伪定制特性362 第17章 委托365 17.1 认识委托365 17.2 使用委托回调静态方法368 17.3 使用委托回调实例方法370 17.4 委托揭秘371 17.5 委托史话:system.delegate与system.multicastdelegate375 17.6 委托判等376 17.7 委托链377 17.8 c#对委托链的支持383 17.9 对委托链调用施以更多的控制384 17.10 委托与反射386 第ⅴ部分 类型管理 第18章 异常393 18.1 异常处理的演化394 18.2 异常处理机制396 18.2.1 try块397 18.2.2 catch块398 18.2.3 finally块400 18.3 异常的本质401 18.4 system.exception类406 18.5 fcl定义的异常类408 18.6 定义自己的异常类411 18.7 如何正确使用异常416 18.7.1 避免过多的finally块416 18.7.2 避免捕获所有异常418 18.7.3 从异常中顺利地恢复419 18.7.4 当异常无法修复时,回滚部分完成的操作420 18.7.5 隐藏实现细节421 18.8 fcl中存在的一些问题424 18.9 性能考虑426 18.10 捕获筛选器429 18.11 未处理异常432 18.11.1 发生未处理异常时的clr行为控制437 18.11.2 未处理异常与windows窗体439 18.11.3 未处理异常与asp.net web窗体440 18.11.4 未处理异常与asp .net xml web服务441 18.12 异常堆栈踪迹441 18.12.1 远程堆栈踪迹444 18.13 异常调试445 18.13.1 告诉visual studio调试何种代码448 第19章 自动内存管理(垃圾收集)451 19.1 垃圾收集平台基本原理解析451 19.2 垃圾收集算法455 19.3 终止化操作459 19.3.1 调用finalize方法的条件467 19.3.2 终止化操作的内部机理468 19.4 dispose模式:强制对象清理资源471 19.4.1 使用实现了dispose模式的类型477 19.4.2 c#的using语句482 19.4.3 一个有趣的依赖问题484 19.5 弱引用485 19.5.1 弱引用的内部机理487 19.6 对象复苏489 19.6.1 利用复苏设计一个对象池491 19.7 对象的代龄493 19.8 编程控制垃圾收集器499 19.9 其他一些与垃圾收集器性能相关的问题501 19.9.1 省却同步控制的多线程分配503 19.9.2 可扩展并行收集503 19.9.3 并发收集504 19.9.4 大尺寸对象505 19.10 监视垃圾收集506 第20章 clr寄宿、应用程序域、反射507 20.1 元数据:.net框架的基石507 20.2 clr寄宿508 20.3 应用程序域510 20.3.1 跨越应用程序域边界访问对象513 20.3.2 应用程序域事件515 20.3.3 应用程序及其如何寄宿clr和管理应用程序域516 20.3.4 yukon517 20.4 反射概要518 20.5 反射一个程序集中的类型520 20.6 反射一个应用程序域中的程序集523 20.7 反射一个类型的成员:绑定523 20.8 显式加载程序集525 20.8.1 将程序集象"数据文件"一样加载527 20.8.2 建立一个异常类型的层次结构529 20.9 显式卸载程序集:卸载应用程序域532 20.10 获取一个system.type对象的引用534 20.11 反射一个类型的成员538 20.11.1 创建一个类型的实例541 20.11.2 调用一个类型的方法543 20.11.3 一次绑定、多次调用548 20.12 反射一个类型的接口553 20.13 反射的性能555 索引557 术语表592 |
商品评论(0条)