书籍详情
Microsoft .NET框架程序设计:Visual Basic .NET语言描述
作者:(美)Jeffrey Richter,(美)Francesco Balena著;李建忠译;李建忠译
出版社:华中科技大学出版社
出版时间:2004-07-01
ISBN:9787560931456
定价:¥54.00
购买这本书可以去
内容简介
Microsoft.NET框架为简化开发与互联网无缝连接的应用程序和组件提供了强大的技术支持,如ASP.NET Web窗体、XML Web服务以及Windows窗体。本书的目的在于展示.NET框架中公共语言运行库(CLR)的核心内容。全书由两位广受尊敬的开发者/作者完成,并假设读者理解面向对象程序设计的基本概念,如数据抽象、继承和多态。书中内容清楚地解释了CLR的扩展类型系统,CLR如何管理类型的行为,以及应用程序如何操作类型。虽然本书的重点在Visual Basic.NET,但是全书的内容也同样适用于面向.NET框架的所有编程语言。 本书内容:· .NET框架开发平台体系结构· 生成、打包、部署及管理应用程序与类型· 共享程序集· 类型基本原理· 基元类型、引用类型与值类型· 通用对象操作· 类型成员及其可访问性· 常数、字段、方法、属性和事件· 文本处理· 枚举类型与位标记· 数组· 接口· 定制特性· 委托· 异常· 自动内存管理(垃圾收集)· CLR寄宿、AppDomain和反射
作者简介
JeffreyRichterJeffreyRichter是一位在全球享有盛誉的技术作家,尤其在Windows/.NET领域有着杰出的贡献。他的第一本Windows著作Windows3:ADeveloper'sGuide大获好评,从而声名远扬。之后,他又推出了经典著作《Windows高级编程指南》和《Windows核心编程》。如今这两本书早已成为Windows程序设计领域的颠峰之作,培育了几代软件开发设计人员。他的每一本新作问世,我们都有理由相信这是一本巨著,我们想要的一切尽在其中。Jeffery是Wintellect公司的创始人之一,也是MSDN杂志.NET专栏的特邀编辑。现在他正领导开发该公司的.NET程序设计课程,向大众推广.NET技术。因为他自1999年开始就参与了微软.NET框架开发组的咨询工作,与这些一线人员一起经历了.NET的孕育与诞生,所以他对.NET思想的领悟、对.NET的细节熟稔,是其他任何作家难以企及的。他是.NET著作领域中当之无愧的一面旗帜。>>更多作品李建忠李建忠,河南省三门峡人,毕业于南京邮电学院。敏于行讷于言,喜钻研好探索,对软件技术有着持久的热情和追求,对IT业界有着深刻的体认与抱负。现在一软件企业担任TechLead,专司企业应用软件研发,业余喜欢以文铭志。主要著译作品有《C#锐利体验》,《Microsoft.NET框架程序设计(修订版)》,《Microsoft.NET框架程序设计(VisualBasic.NET描述)》等。JeffreyRichter名著《AppliedMicrosoft.NETFrameworkprogramming》中文译本《Microsoft.NET框架程序设计(修订版)》的译者。>>更多作品
目录
第1部分Microsoft.NET框架基本原理
第1章 Microsoft.NET框架开发平台体系架构 3
1.1 将源代码编译为托管模块 3
1.2 将托管模块组合为程序集 6
1.3 加载公共语言运行库 7
1.4 执行程序集代码 9
1.5 .NET框架类库 16
1.6 通用类型系统 19
1.7 通用语言规范 20
1.8 与非托管代码互操作 24
第2章 生成、打包、部署及管理应用程序与类型 27
2.1 .NET框架部署目标 27
2.2 将类型生成为模块 28
2.3 将模块组合为程序集 35
2.3.1使用VisualStudio.NET集成开发环境为项目添加程序集引用 40
2.3.2 使用程序集链接器 40
2.3.3 在程序集中包含资源文件 42
2.4 程序集版本资源信息 43
2.5 语言文化 46
2.6 简单应用程序部署(私有部署程序集) 48
2.7 简单管理控制(配置) 49
第3章 共享程序集 53
3.1 两种程序集、两种部署方式 54
3.2 强命名程序集 54
3.3 全局程序集缓存 59
3.4 创建引用强命名程序集的程序集 65
3.5 强命名程序集的防篡改特性 66
3.6 延迟签名 67
3.7 强命名程序集的私有部署 70
3.8 并存执行 72
3.9 运行时如何解析类型引用 73
3.10 高级管理控制(配置) 75
3.11 修复错误的应用程序 81
第Ⅱ部分处理类型和公共语言运行库
第4章 类型基本原理 87
4.1 所有类型的基类型:System.Object 87
4.2 VisualBasic标准模块 89
4.3 类型间的转换 92
4.3.1 使用CType运算符转型 94
4.3.2 使用TypeOf...IS表达式测试对象的类型 96
4.4 命名空间与程序集 97
第5章 基元类型、引用类型
与值类型 102
5.1 语言基元类型编程 102
5.2 引用类型与值类型 107
5.3 值类型的装箱与拆箱 111
第6章 通用对象操作 120
6.1 对象的等值性与惟一性 120
6.1.1 为基类没有重写Object.EQuals方法的引用类型实现EQuals 121
6.1.2 为基类重写了Object.Equals方法的引用类型实现EQuals 122
6.1.3 为值类型实现Equals方法123
6.1.4 Equals方法和判等与判异运算符的实现总结 ;125
6.1.5 标识 126
6.2 对象的散列码 127
6.3 对象克隆 129
第Ⅲ部分 设计类型
第7章 类型成员及其可访问性 133
7.1 类型成员 133
7.2 访问级别修饰符和预定义特性 136
7.2.1 类型预定义特性 137
7.2.2 字段预定义特性 137
7.2.3 方法预定义特性 137
第8章 常数与字段 139
8.1 常 数 139
8.2 字 段 141
第9章 方 法 144
9.1 实例构造器 144
9.2 类型构造器 149
9.3 引用参数 151
9.4 可变数目参数 155
9.5 可参数 157
9.6 方法中的静态变量 159
9.7 运算符重载方法 161
9.8 转换运算符方法 165
9.9 虚方法的调用机理 166
9.10 虚方法的版本问题 167
第10章 属 性 172
10.1 无参属性 172
10.2 含参属性 176
第11章 事 件 179
11.1 发布事件 180
11.2 侦听事件 184
11.3 一种更简单的注朋和注销事件方式 186
第Ⅳ部分 重要的类型
第12章 文本处理 191
12.1 字 符 191
12.2 System.String类型 194
12.2.1 创建字符串 194
12.2.2 字符串的恒定性 196
12.2.3 字符串比较 197
12.2.4 字符串驻留 201
12.2.5 字符串池 204
12.2.6 查看字符串中的字符 204
12.2.7 其他字符串操作 206
12.3 高效地动态创建字符串 207
12.3.1 构造StringBuilder对象 208
12.3.2 StringBuilder的成员 208
12.4 获取对象的字符串表达形式 210
12.4.1 特定格式与语言文化 211
12.4.2 将多个对象格式化为一个字符串 214
12.4.3 提供自定义格式标识符 216
12.5 通过解析字符串获取对象 218
12.6 编码:字符与字节之间的转换 222
12.6.1 字符与字节的编码/解码流 228
12.6.2 Base-64字符串编码与解码 229
第13章 枚举类型与位标记 231
13.1 枚举类型 231
13.2 位标记 235
第14章 数 组 239
14.1 所有数组的基类:System.Array 242
14.2 数组的转型 243
14.3 数组的传递与返回 245
14.4 创建下限非0的数组 246
14.5 快速数组访问 247
14.6 重新凋整数组 251
第15章 接 口 254
15.1 接口与继承 254
15.2 设计支持插件组件的应用程序 259
15.3 使用接口改变已装箱值类型的字段 260
15.4 实现多个有相同方法名与签名的接口 262
15.5 提高类型安全并减少装箱操作 265
第16章 定制特性 269
16.1 使用定制特性 269
16.2 定义自己的特性 271
16.3 特性构造器与字段/属性的数据类型 275
16.4 检测定制特性的使用 276
16.5 两个特性实例间的相互匹配 280
16.6 伪定制特性 282
第17章 委 托 284
17.1 认识委托 284
17.2 使用委托回调静态方法 286
17.3 使用委托回调实例方法 288
17.4 委托揭秘 289
17.5 委托史话:System.Delegate与System.MulticastDelegate 292
17.6 委托判等 293
17.7 委托链 294
17.8 对委托链调用施以更多控制 298
17.9 委托与反射 301
第V部分 类型管理
第18章 异 常 307
18.1 异常处理机制 308
18.1.1 Try块 309
18.1.2 Catch块 309
18.1.3 Finally块 310
18.2 异常的本质 311
18.3 System.Exception类 314
18.4 FCL定义的异常类 315
18.5 定义自己的异常类 318
18.6 如何正确使用异常 322
18.6.1 避免过多的Finally块 322
18.6.2 避免捕获所有异常 323
18.6.3 从异常中顺利地恢复 324
18.6.4 当异常无法修复时,回滚部分完成的操作 325
18.6.5 隐藏实现细节 326
18.7 FCL中存在的一些问题 328
18.8 性能考虑 329
18.9 捕获筛选器 331
18.10 OnError语句 335
18.11 未处理异常 335
18.11.1 发生未处理异常时的CLR行为控制 340
18.11.2 未处理异常与Windows窗体 341
18.11.3 未处理异常与ASP.NET Web窗体 342
18.11.4 未处理异常与ASP.NET XMLWeb服务 343
18.12 异常栈踪迹 343
18.13 异常调试 346
第19章 自动内存管理(垃圾收集) 351
19.1 垃圾收集平台基本原理解析 351
19.2 垃圾收集算法 354
19.3 终止化操作 357
19.3.1 调用Finalize方法的条件361
19.3.2 终止化操作的内部机理 363
19.4 dispose模式:强制对象清理资源 365
19.4.1 使用实现了dispose模式的类型 372
19.4.2 使用dispose模式时注意处理异常 376
19.4.3 一个有趣的依赖问题 376
19.5 弱引用 377
19.6 对象复苏 380
19.7 对象的代龄 384
19.8 编程控制垃圾收集器 388
19.9 其他一些与垃圾收集器性能相关的问题 390
19.9.1 省却同步控制的多线程分配 391
19.9.2 可扩展并行垃圾收集 391
19.9.3 并发垃圾收集 392
19.9.4 大尺寸对象 393
19.10 监视垃圾回收 393
第20章 CLR寄宿、AppDomain和反射 395
20.1 元数据:.NET框架的基石 395
20.2 CLR寄宿 396
20.3 AppDomain 397
20.3.1 跨越AppDomain边界访问对象 400
20.3.2 AppDomain事件 401
20.3.3 应用程序及其如何寄宿CLR和管理AppDomain 401
20.3.4 YukOn 403
20.4 反射概要 403
20.5 反射一个程序集中的类型 404
20.6 反射一个AppDomain中的程序集 407
20.7 反射一个类型的成员:绑定 407
20.8 显式加载程序集 409
20.8.1 将程序集像“数据文件”一样加载 411
20.8.2 建立一个异常类型的层次结构 412
20.9 显式卸载程序集:卸载AppDomain 414
20.10 获取一个System.Type对象的引用 416
20.11 反射—个类型的成员 419
20.11.1 创建一个类型的实例 421
20.11.2 调用—个类型的方法 423
20.11.3 一次绑定和多次调用 427
20.12 反射一个类型的接口 431
20.13 反射的性能 433
第1章 Microsoft.NET框架开发平台体系架构 3
1.1 将源代码编译为托管模块 3
1.2 将托管模块组合为程序集 6
1.3 加载公共语言运行库 7
1.4 执行程序集代码 9
1.5 .NET框架类库 16
1.6 通用类型系统 19
1.7 通用语言规范 20
1.8 与非托管代码互操作 24
第2章 生成、打包、部署及管理应用程序与类型 27
2.1 .NET框架部署目标 27
2.2 将类型生成为模块 28
2.3 将模块组合为程序集 35
2.3.1使用VisualStudio.NET集成开发环境为项目添加程序集引用 40
2.3.2 使用程序集链接器 40
2.3.3 在程序集中包含资源文件 42
2.4 程序集版本资源信息 43
2.5 语言文化 46
2.6 简单应用程序部署(私有部署程序集) 48
2.7 简单管理控制(配置) 49
第3章 共享程序集 53
3.1 两种程序集、两种部署方式 54
3.2 强命名程序集 54
3.3 全局程序集缓存 59
3.4 创建引用强命名程序集的程序集 65
3.5 强命名程序集的防篡改特性 66
3.6 延迟签名 67
3.7 强命名程序集的私有部署 70
3.8 并存执行 72
3.9 运行时如何解析类型引用 73
3.10 高级管理控制(配置) 75
3.11 修复错误的应用程序 81
第Ⅱ部分处理类型和公共语言运行库
第4章 类型基本原理 87
4.1 所有类型的基类型:System.Object 87
4.2 VisualBasic标准模块 89
4.3 类型间的转换 92
4.3.1 使用CType运算符转型 94
4.3.2 使用TypeOf...IS表达式测试对象的类型 96
4.4 命名空间与程序集 97
第5章 基元类型、引用类型
与值类型 102
5.1 语言基元类型编程 102
5.2 引用类型与值类型 107
5.3 值类型的装箱与拆箱 111
第6章 通用对象操作 120
6.1 对象的等值性与惟一性 120
6.1.1 为基类没有重写Object.EQuals方法的引用类型实现EQuals 121
6.1.2 为基类重写了Object.Equals方法的引用类型实现EQuals 122
6.1.3 为值类型实现Equals方法123
6.1.4 Equals方法和判等与判异运算符的实现总结 ;125
6.1.5 标识 126
6.2 对象的散列码 127
6.3 对象克隆 129
第Ⅲ部分 设计类型
第7章 类型成员及其可访问性 133
7.1 类型成员 133
7.2 访问级别修饰符和预定义特性 136
7.2.1 类型预定义特性 137
7.2.2 字段预定义特性 137
7.2.3 方法预定义特性 137
第8章 常数与字段 139
8.1 常 数 139
8.2 字 段 141
第9章 方 法 144
9.1 实例构造器 144
9.2 类型构造器 149
9.3 引用参数 151
9.4 可变数目参数 155
9.5 可参数 157
9.6 方法中的静态变量 159
9.7 运算符重载方法 161
9.8 转换运算符方法 165
9.9 虚方法的调用机理 166
9.10 虚方法的版本问题 167
第10章 属 性 172
10.1 无参属性 172
10.2 含参属性 176
第11章 事 件 179
11.1 发布事件 180
11.2 侦听事件 184
11.3 一种更简单的注朋和注销事件方式 186
第Ⅳ部分 重要的类型
第12章 文本处理 191
12.1 字 符 191
12.2 System.String类型 194
12.2.1 创建字符串 194
12.2.2 字符串的恒定性 196
12.2.3 字符串比较 197
12.2.4 字符串驻留 201
12.2.5 字符串池 204
12.2.6 查看字符串中的字符 204
12.2.7 其他字符串操作 206
12.3 高效地动态创建字符串 207
12.3.1 构造StringBuilder对象 208
12.3.2 StringBuilder的成员 208
12.4 获取对象的字符串表达形式 210
12.4.1 特定格式与语言文化 211
12.4.2 将多个对象格式化为一个字符串 214
12.4.3 提供自定义格式标识符 216
12.5 通过解析字符串获取对象 218
12.6 编码:字符与字节之间的转换 222
12.6.1 字符与字节的编码/解码流 228
12.6.2 Base-64字符串编码与解码 229
第13章 枚举类型与位标记 231
13.1 枚举类型 231
13.2 位标记 235
第14章 数 组 239
14.1 所有数组的基类:System.Array 242
14.2 数组的转型 243
14.3 数组的传递与返回 245
14.4 创建下限非0的数组 246
14.5 快速数组访问 247
14.6 重新凋整数组 251
第15章 接 口 254
15.1 接口与继承 254
15.2 设计支持插件组件的应用程序 259
15.3 使用接口改变已装箱值类型的字段 260
15.4 实现多个有相同方法名与签名的接口 262
15.5 提高类型安全并减少装箱操作 265
第16章 定制特性 269
16.1 使用定制特性 269
16.2 定义自己的特性 271
16.3 特性构造器与字段/属性的数据类型 275
16.4 检测定制特性的使用 276
16.5 两个特性实例间的相互匹配 280
16.6 伪定制特性 282
第17章 委 托 284
17.1 认识委托 284
17.2 使用委托回调静态方法 286
17.3 使用委托回调实例方法 288
17.4 委托揭秘 289
17.5 委托史话:System.Delegate与System.MulticastDelegate 292
17.6 委托判等 293
17.7 委托链 294
17.8 对委托链调用施以更多控制 298
17.9 委托与反射 301
第V部分 类型管理
第18章 异 常 307
18.1 异常处理机制 308
18.1.1 Try块 309
18.1.2 Catch块 309
18.1.3 Finally块 310
18.2 异常的本质 311
18.3 System.Exception类 314
18.4 FCL定义的异常类 315
18.5 定义自己的异常类 318
18.6 如何正确使用异常 322
18.6.1 避免过多的Finally块 322
18.6.2 避免捕获所有异常 323
18.6.3 从异常中顺利地恢复 324
18.6.4 当异常无法修复时,回滚部分完成的操作 325
18.6.5 隐藏实现细节 326
18.7 FCL中存在的一些问题 328
18.8 性能考虑 329
18.9 捕获筛选器 331
18.10 OnError语句 335
18.11 未处理异常 335
18.11.1 发生未处理异常时的CLR行为控制 340
18.11.2 未处理异常与Windows窗体 341
18.11.3 未处理异常与ASP.NET Web窗体 342
18.11.4 未处理异常与ASP.NET XMLWeb服务 343
18.12 异常栈踪迹 343
18.13 异常调试 346
第19章 自动内存管理(垃圾收集) 351
19.1 垃圾收集平台基本原理解析 351
19.2 垃圾收集算法 354
19.3 终止化操作 357
19.3.1 调用Finalize方法的条件361
19.3.2 终止化操作的内部机理 363
19.4 dispose模式:强制对象清理资源 365
19.4.1 使用实现了dispose模式的类型 372
19.4.2 使用dispose模式时注意处理异常 376
19.4.3 一个有趣的依赖问题 376
19.5 弱引用 377
19.6 对象复苏 380
19.7 对象的代龄 384
19.8 编程控制垃圾收集器 388
19.9 其他一些与垃圾收集器性能相关的问题 390
19.9.1 省却同步控制的多线程分配 391
19.9.2 可扩展并行垃圾收集 391
19.9.3 并发垃圾收集 392
19.9.4 大尺寸对象 393
19.10 监视垃圾回收 393
第20章 CLR寄宿、AppDomain和反射 395
20.1 元数据:.NET框架的基石 395
20.2 CLR寄宿 396
20.3 AppDomain 397
20.3.1 跨越AppDomain边界访问对象 400
20.3.2 AppDomain事件 401
20.3.3 应用程序及其如何寄宿CLR和管理AppDomain 401
20.3.4 YukOn 403
20.4 反射概要 403
20.5 反射一个程序集中的类型 404
20.6 反射一个AppDomain中的程序集 407
20.7 反射一个类型的成员:绑定 407
20.8 显式加载程序集 409
20.8.1 将程序集像“数据文件”一样加载 411
20.8.2 建立一个异常类型的层次结构 412
20.9 显式卸载程序集:卸载AppDomain 414
20.10 获取一个System.Type对象的引用 416
20.11 反射—个类型的成员 419
20.11.1 创建一个类型的实例 421
20.11.2 调用—个类型的方法 423
20.11.3 一次绑定和多次调用 427
20.12 反射一个类型的接口 431
20.13 反射的性能 433
猜您喜欢