内容简介
第Ⅰ部分 基础知识
第1章 Microsoft.NET框架简介
.NET术语
第2章 基本语言概念
2.1 模块、类与命名空间
2.1.1 模块
2.1.2 类
2.1.3 命名空间
2.1.4 属性
2.2 变量
2.2.1 声明与赋值
2.2.2 数据类型
2.2.3 运算符
2.2.4 数组
第3章 控制流和错误处理
3.1 执行流的控制
3.1.1 条件语句和循环语句
3.1.2 过程
3.1.3 命令、函数和常量
3.2 错误处理
3.2.1 引发异常
3.2.2 Try...Catch...Finally语句
3.2.3 Using...End Using语句
3.2.4 自定义异常对象
第4章 使用Visual Basic 2005
4.1 处理项目和解决方案
4.1.1 项目和文件模板
4.1.2 【解决方案资源管理器】窗口
4.1.3 My Project设计器
4.1.4 多项目解决方案
4.1.5 配置管理器
4.1.6 与编译器相关的属性
4.2 编写代码
4.2.1 代码编辑器
4.2.2 XML注释
4.2.3 查找与替换
4.2.4 书签
4.2.5 【错误列表】与【任务列表】窗口
4.2.6 代码段
4.2.7 重构代码
4.3.1 使用【工具】窗口
4.3 各种新旧特性
4.3.2 导入与导出设置
4.3.3 项目和项模板
4.3.4 访问联机内容
4.3.5 自定义特性
4.3.6 宏与命令
第5章 调试Visual Basic应用程序
5.1 调试技术
5.1.1 断点与跟踪点
5.1.2 单步执行
5.1.3 数据提示和可视化工具
5.1.4 处理异常
5.2 跟踪与基准测试
5.2.1 Debug和Trace类
5.2.2 TraceSource类
5.2.3 My.Application.Log对象
5.2.4 StopWatch类型
5.3 单元测试
5.3.1 创建测试项目
5.3.2 运行测试项目
5.3.3 用于单元测试的属性
5.3.4 从数据库中加载测试
5.3.5 TestContext类型
5.3.6 私有访问器
5.3.7 代码覆盖
5.3.8 性能工具
5.4 更多的调试与测试技巧
5.4.1 Debugger对象
5.4.2 StackTrace对象
5.4.3 Debugin-Zone特性
5.4.4 Visual Studio宿主进程
5.4.5 用于调试的宏
5.4.6 测试不同的配置文件
第Ⅱ部分 面向对象编程
第6章 类的基础知识
6.1 字段
6.2 方法
6.2.1 重载
6.2.2 重载与强制转换
6.2.3 不明确的情况
6.3 属性
6.3.1 只读与只写属性
6.3.2 Get与Set语句块的不同范围
6.3.3 带有参数的属性
6.3.4 默认属性
6.4 构造函数
重载的构造函数
6.5 共享成员
6.5.1 共享方法
6.5.2 共享字段
6.5.3 共享属性
6.5.4 共享构造函数
6.5.5 共享工厂方法
6.6 部分类
6.7 运算符重载
6.7.1 Operator关键字
6.7.2 可重载运算符
6.7.3 重载CType运算符
6.7.4 与其他语言的互操作性
6.8 用Visual Studio管理类型
6.8.1 【类视图】窗口
6.8.2 类设计器工具
6.8.3 【对象测试工作台】窗口
第7章 委托和事件
7.1 委托
7.1.1 委托声明
7.1.2 委托调用
7.1.3 Delegate类型的其他成员
7.1.4 回调方法和代码重用
7.1.5 委托多路广播
7.2.1 利用Handles关键字处理事件
7.2 事件
7.2.2 WithEvents关键字
处理分离类中的事件
7.2.3 后台的事件与委托
7.2.4 AddHandler关键字
7.2.5 捕获数组和集合事件
7.2.6 公开事件
7.2.7 事件语法的准则
7.2.8 自定义事件
第8章 继承
8.1 继承的基础知识
使用派生类
8.2 重载基类中的成员
8.2.1 重载变体
8.2.2 MyBase关键字
8.2.3 派生类中的构造函数
8.2.4 MyClass关键字
8.2.5 成员遮蔽
8.2.6 重定义静态成员
8.3 密封类和虚拟类
8.3.1 NotInheritable关键字
8.3.2 MustInherit关键字
8.3.3 MustOverride关键字
8.4 作用域
8.4.1 嵌套类
8.4.2 Public,Friend和Private作用域限定符
8.4.3 Protected作用域限定符
8.4.5 将作用域限定符用于构造函数
8.4.4 Protected Friend作用域限定符
8.4.6 重定义事件
8.5 可视继承
8.5.1 基窗体举例
8.5.2 继承的窗体举例
8.5.3 向基窗体中添加属性、方法和事件
第9章 对象生存期
9.1 对垃圾收集的需求
9.1.1 COM和引用计数器
9.1.2 垃圾收集进程
9.1.3 Finalize方法
9.1.4 Dispose方法
9.1.5 结合Dispose和Finalize方法
9.1.6 更好的Dispose-Finalize模式
9.1.7 派生类中的终结器
9.1.8 终结的简化方法
9.2 高级技术
9.2.1 世代
9.2.2 垃圾收集与性能
9.2.3 弱对象引用
9.2.4 对象复活
9.2.5 多CPU计算机上的垃圾收集
第10章 接口
10.1 定义和实现接口
10.1.1 Interface...End Interface语句
10.1.2 实现接口
10.1.3 访问接口
10.1.4 接口与继承
10.1.5 接口的重新实现
10.1.6 接口与多态
10.2 使用.NET接口
10.2.1 IComparable接口
10.2.2 IComparer接口
10.2.3 ICloneable接口
10.2.4 IDisposable接口
10.2.5 编写集合类
第11章 泛型
11.1 对泛型的需要
11.1.1 传统解决方案
11.1.2 基于泛型的解决方案
11.2 编写泛型
11.2.1 泛型参数
11.2.2 泛型约束条件
11.3 高级主题
11.3.1 可以为空(Nullable)的类型
11.3.2 对数学运算符的支持
11.3.3 泛型和事件
11.3.4 对象池
第Ⅲ部分 .NET框架编程
第12章 .NET基本类型
12.1 System.Object类型
12.1.1 公共方法与受保护方法
12.1.2 再谈值类型和引用类型
12.1.3 装箱和取消装箱
12.2.1 属性和方法
12.2 字符串类型
12.2.2 Missing方法
12.2.3 字符串优化
12.2.4 CultureInfo类型
12.2.5 Encoding类
12.2.6 格式化数值
12.2.7 设置日期的格式
12.2.8 Char类型
12.2.9 StringBuilder类型
12.2.10 SecureString类型
12.3 数字类型
12.3.1 属性和方法
12.3.2 格式化数字
12.3.3 将字符串分析为数字
12.3.4 Convert类型
12.3.5 随机数生成器
12.4 DateTime类型
12.4.1 日期值的加减
12.4.2 格式化日期
12.4.3 分析日期
12.4.4 处理时区
12.4.5 TimeZone类型
12.4.6 Guid类型
12.5 枚举值
12.5.1 显示并分析枚举值
12.5.2 其他Enum方法
12.5.3 位编码值
13.1 数组类型
第13章 数组和集合
13.1.1 元素的排序
13.1.2 元素的删除、复制与移动
13.1.3 搜索值
13.1.4 交错数组
13.1.5 泛型方法
13.2 System.Collections命名空间
13.2.1 ICollection、IList和IDictionary接口
13.2.2 ArrayList类型
13.2.3 Hashtable类型
13.2.4 SortedList类型
13.2.5 其他集合
13.2.6 强类型集合的抽象类型
13.3 泛型集合
13.3.1 List泛型
13.3.2 Dictionary泛型
13.3.3 LinkedList泛型
13.3.4 其他泛型集合
13.3.5 System.Generic.ObjectModel命名空间
第14章 正则表达式
14.1 正则表达式概述
14.1.1 基础知识
14.1.2 正则表达式语言
14.1.3 正则表达式选项
14.2 正则表达式类型
14.2.1 Regex类型
14.2.2 MatchCollection和Match类型
14.2.3 Group类型
14.2.4 CaptureCollection和Capture类型
14.3 正则表达式应用
14.3.1 常见Regex模式
14.3.2 查找单词和带引号的字符串
14.3.3 验证字符串、数字和日期的有效性
14.3.4 查找嵌套标记
14.3.5 分析数据文件
14.3.6 分析和计算表达式
14.3.7 分析代码
14.3.8 使用正则表达式
第15章 文件、目录和流
15.1 Path类型
15.2 Directory和File类型
15.2.1 列举目录和文件
15.2.2 管理目录和文件
15.2.3 读取和写入文件
15.3 DirectoryInfo和FileInfo类型
15.4 DriveInfo类型
15.5 FileSystemWatcher类型
15.5.1 初始化FileSystemWatcher组件
15.5.2 获得通知
15.5.3 疑难解答
15.6 处理访问控制列表
15.6.1 帐户名称和安全标识符
15.6.2 DirectorySecurity和FileSecurity类型
15.6.3 修改ACL
15.7 Stream类型
15.7.1 流操作
15.7.2 流式阅读器和流式编写器
15.7.3 读取和写入文本文件
15.7.4 读取和写入二进制文件
15.7.5 处理定长和分隔数据文件
15.8 其他Stream类型
15.8.1 内存流
15.8.2 基于字符串的流
15.8.3 网络流
15.8.4 缓冲流
15.8.5 压缩流
第16章 My命名空间
16.1 My命名空间概述
16.1.1 My.Application对象
16.1.2 My.Computer对象
16.1.3 My.User对象
16.1.4 My.Resources对象
16.1.5 My.Settings对象
16.1.6 My.Forms和My.WebServices对象
16.2 扩展和自定义My命名空间
16.2.1 添加顶级对象
16.2.2 扩展My.Application和My.Computer
16.2.3 扩展My.Resources
16.2.4 扩展My.Settings
16.2.5 使用编译常量
第17章 程序集与资源
17.1 组件
17.1.1 创建.NET类库
17.1.2 创建托管组件
17.2.1 私有和共享程序集
17.2 程序集
17.2.2 强名称
17.2.3 在GAC中进行安装
17.2.4 程序集级别属性
17.2.5 InternalsVisibleTo属性
17.3 资源和附属程序集
17.3.1 资源清单
17.3.2 本地化的窗体资源
17.3.3 本地化强类型字符串资源
17.3.4 自定义资源文件
17.3.5 附属程序集
17.3.6 附属程序集的属性
17.4 绑定进程
17.4.1 应用程序配置文件中的版本策略
17.4.2 预先加载的程序集及GAC查找
17.4.3 基本代码提示
17.4.4 探测
17.4.5 程序集绑定日志查看器实用工具(FUSLOGVW)
17.5 配置文件
17.5.1 设置运行库版本
17.5.2 .NET框架配置工具
17.6 NGen工具
17.6.1 使用NGen工具
17.6.2 使用NGen服务
17.6.3 调试本机映像
17.6.4 NGen的属性
18.1 使用程序集及模块
第Ⅳ部分 高级主题
第18章 反射
18.1.1 Assembly类型
18.1.2 AssemblyName类型
18.1.3 Module类型
18.2 使用类型
18.2.1 检索Type对象
18.2.2 探讨类型成员
18.2.3 对于泛型的反射
18.2.4 属性反射
18.2.5 创建自定义对象浏览器
18.3 反射示例
18.3.1 动态创建对象
18.3.2 访问成员
18.3.3 InvokeMember方法
18.3.4 创建通用比较器
18.3.5 事件处理程序的动态注册
18.3.6 安排动作序列
18.3.7 随时编译
18.3.8 性能考虑
18.3.9 安全问题
第19章 自定义属性
19.1 自定义属性简介
19.1.1 构造自定义属性类
19.1.2 反射自定义属性
19.2 用于CSV序列化的自定义属性
19.3 构建基准测试工具
19.4.1 PluginLibrary项目
19.4 为Windows窗体应用程序编写插件
19.4.2 MainApplication和MainApplicationStartup项目
19.4.3 SamplePlugin项目
19.5 n层应用程序的框架
19.5.1 DataObjectLibrary项目
19.5.2 DataSets项目
19.5.3 DemoClient项目
19.5.4 DataObjects项目
第20章 线程
20.1 线程处理基础知识
20.1.1 何时使用线程
20.1.2 创建线程
20.1.3 将数据传递给线程或从中读取数据
20.1.4 使用线程
20.1.5 线程属性
20.1.6 存储和共享数据
20.1.7 线程和未处理异常
20.1.8 调试线程
20.2 线程的同步
20.2.1 SyncLock语句
20.2.2 同步对象
20.2.3 易变化的读写操作
20.2.4 Monitor类型
20.2.5 Mutex类型
20.2.6 Semaphore类型
20.2.7 ReaderWriterLock类型
20.2.8 Interlocked类型
20.2.9 ManualResetEvent、AutoResetEvent和EventWaitHandle类型
20.3 使用线程池
20.3.1 ThreadPool类型
20.3.2 Timer类型
20.4 异步操作
20.4.1 异步委托
20.4.2 异步文件操作
20.4.3 为用户类型添加异步支持
20.5 Windows窗体应用程序中的线程处理
20.5.1 ISynchronizeInvoke接口
20.5.2 BackgroundWorker组件
第21章 序列化
21.1 基本序列化
21.1.1 二进制序列化
21.1.2 SOAP序列化
21.1.3 创建可序列化类型
21.1.4 对象图
21.1.5 序列化和事件
21.1.6 深层对象克隆
21.1.7 版本容错序列化(VTS)
21.2 自定义序列化
21.2.1 IDeserializationCallback接口
21.2.2 ISerializable接口
21.2.3 序列化和反序列化事件
21.2.4 IObjectReference接口
21.2.5 ISerializationSurrogate接口
21.2.6 继承不可序列化类型
第22章 PInvoke和COM Interop
22.1.1 Declare关键字
22.1 使用PInvoke
22.1.2 DlUmport属性
22.1.3 封送数据
22.1.4 MarshalAs属性
22.1.5 StructLayout属性
22.1.6 FieldOffset属性
22.1.7 委托和回调过程
22.1.8 In和Out属性
22.1.9 Marshal类
22.2 从.NET调用COM组件
22.2.1 运行库可调用包装
22.2.2 用Visual Studio导入COM组件
22.2.3 使用所导入的Interop程序集
22.2.4 用TlbImp导入COM组件
22.2.5 主Interop程序集
22.2.6 免注册COM组件
22.2.7 后期绑定与反射
22.2.8 COM Interop封送处理
22.2.9 线程处理问题
22.3 从COM调用.NET对象
22.3.1 COM可调用包装
22.3.2 创建示例.NET组件
22.3.3 RegAsm与TlbExp工具
22.3.4 转换的详细信息
22.3.5 使用属性控制转换
22.3.6 处理异常情况
22.3.7 编写COM友好的.NET框架组件