
| 造就Visual Basic编程专家的理想参考书/教程 通过本书,您可以在Visual Basic权威专家的指导下,认识并掌握Visual Basic 2005的核心语言特性和功能,为以后的编程生涯奠定坚实的基础。 著名Visual Basic技术作家Francesco Balena以娴熟的写作技巧,引导您掌握模块、关键字和继承之类的基础知识,并逐步掌握高级主题,如代理、assemblies和My Namespace。本书具有很高的参考价值,包含丰富的范例和最佳实践提示,是读者提升专业编程技能的重要参考书。 |
| Francesco Balena是深受读者欢迎的技术作家,代表作品有“Practical Guidelines and Best Practices for Microsoft Visual Basic and Visual C# Developers”。他是Wintellect的讲师和顾问,MSDN意大利地区主管,同时也是美国和欧洲研讨会的重要发言人。 .. << 查看详细 |
| 目 录 第ⅰ部分 基础知识 第1章 microsoft .net框架简介3 .net 术语3 第2章 基本语言概念12 2.1 模块、类与命名空间12 2.1.1 模块13 2.1.2 类15 2.1.3 命名空间26 2.1.4 属性32 2.2 变量34 2.2.1 声明与赋值35 2.2.2 数据类型43 2.2.3 运算符51 2.2.4 数组65 第3章 控制流和错误处理70 3.1 执行流的控制70 3.1.1 条件语句和循环语句70 .3.1.2 过程75 3.1.3 命令、函数和常量82 3.2 错误处理86 3.2.1 引发异常86 3.2.2 try...catch...finally语句91 3.2.3 using...end using语句98 3.2.4 自定义异常对象100 第4章 使用visual basic 2005102 4.1 处理项目和解决方案102 4.1.1 项目和文件模板102 4.1.2 【解决方案资源管理器】 窗口104 4.1.3 my project设计器106 4.1.4 多项目解决方案110 4.1.5 配置管理器112 4.1.6 与编译器相关的属性115 4.2 编写代码118 4.2.1 代码编辑器118 4.2.2 xml注释120 4.2.3 查找与替换122 4.2.4 书签125 4.2.5 【错误列表】与【任务 列表】窗口125 4.2.6 代码段127 4.2.7 重构代码130 4.3 各种新旧特性132 4.3.1 使用【工具】窗口132 4.3.2 导入与导出设置133 4.3.3 项目和项模板134 4.3.4 访问联机内容137 4.3.5 自定义特性137 4.3.6 宏与命令140 第5章 调试visual basic应用程序147 5.1 调试技术147 5.1.1 断点与跟踪点147 5.1.2 单步执行150 5.1.3 数据提示和可视化工具153 5.1.4 处理异常158 5.2 跟踪与基准测试160 5.2.1 debug和trace类160 5.2.2 tracesource类166 5.2.3 my.application.log对象168 5.2.4 stopwatch类型169 5.3 单元测试169 5.3.1 创建测试项目170 5.3.2 运行测试项目173 5.3.3 用于单元测试的属性175 5.3.4 从数据库中加载测试177 5.3.5 testcontext类型179 5.3.6 私有访问器180 5.3.7 代码覆盖180 5.3.8 性能工具182 5.4 更多的调试与测试技巧184 5.4.1 debugger对象184 5.4.2 stacktrace对象185 5.4.3 debug-in-zone特性187 5.4.4 visual studio宿主进程189 5.4.5 用于调试的宏189 5.4.6 测试不同的配置文件191 第ⅱ部分 面向对象编程 第6章 类的基础知识195 6.1 字段195 6.2 方法198 6.2.1 重载198 6.2.2 重载与强制转换200 6.2.3 不明确的情况200 6.3 属性201 6.3.1 只读与只写属性202 6.3.2 get与set语句块的 不同范围204 6.3.3 带有参数的属性205 6.3.4 默认属性206 6.4 构造函数206 重载的构造函数208 6.5 共享成员209 6.5.1 共享方法209 6.5.2 共享字段211 6.5.3 共享属性213 6.5.4 共享构造函数214 6.5.5 共享工厂方法215 6.6 部分类217 6.7 运算符重载219 6.7.1 operator关键字219 6.7.2 可重载运算符221 6.7.3 重载ctype运算符223 6.7.4 与其他语言的互操作性224 6.8 用visual studio管理类型226 6.8.1 【类视图】窗口226 6.8.2 类设计器工具226 6.8.3 【对象测试工作台】窗口228 第7章 委托和事件229 7.1 委托229 7.1.1 委托声明230 7.1.2 委托调用230 7.1.3 delegate类型的其他成员232 7.1.4 回调方法和代码重用233 7.1.5 委托多路广播235 7.2 事件236 7.2.1 利用handles关键字 处理事件236 7.2.2 withevents关键字238 处理分离类中的事件239 7.2.3 后台的事件与委托240 7.2.4 addhandler关键字242 7.2.5 捕获数组和集合事件243 7.2.6 公开事件245 7.2.7 事件语法的准则246 7.2.8 自定义事件248 第8章 继承251 8.1 继承的基础知识251 使用派生类253 8.2 重载基类中的成员254 8.2.1 重载变体255 8.2.2 mybase关键字256 8.2.3 派生类中的构造函数257 8.2.4 myclass关键字257 8.2.5 成员遮蔽260 8.2.6 重定义静态成员262 8.3 密封类和虚拟类263 8.3.1 notinheritable关键字263 8.3.2 mustinherit关键字264 8.3.3 mustoverride关键字265 8.4 作用域266 8.4.1 嵌套类266 8.4.2 public,friend和private 作用域限定符267 8.4.3 protected作用域限定符268 8.4.4 protected friend作用域 限定符269 8.4.5 将作用域限定符用于 构造函数269 8.4.6 重定义事件271 8.5 可视继承273 8.5.1 基窗体举例273 8.5.2 继承的窗体举例274 8.5.3 向基窗体中添加属性、 方法和事件275 第9章 对象生存期280 9.1 对垃圾收集的需求280 9.1.1 com和引用计数器280 9.1.2 垃圾收集进程281 9.1.3 finalize方法282 9.1.4 dispose方法284 9.1.5 结合dispose和 finalize方法286 9.1.6 更好的dispose-finalize 模式287 9.1.7 派生类中的终结器289 9.1.8 终结的简化方法290 9.2 高级技术292 9.2.1 世代292 9.2.2 垃圾收集与性能294 9.2.3 弱对象引用297 9.2.4 对象复活299 9.2.5 多cpu计算机上的 垃圾收集300 第10章 接口302 10.1 定义和实现接口302 10.1.1 interface...end interface 语句302 10.1.2 实现接口303 10.1.3 访问接口305 10.1.4 接口与继承306 10.1.5 接口的重新实现307 10.1.6 接口与多态308 10.2 使用.net接口311 10.2.1 icomparable接口311 10.2.2 icomparer接口312 10.2.3 icloneable接口314 10.2.4 idisposable接口317 10.2.5 编写集合类318 第11章 泛型325 11.1 对泛型的需要325 11.1.1 传统解决方案326 11.1.2 基于泛型的解决方案327 11.2 编写泛型328 11.2.1 泛型参数329 11.2.2 泛型约束条件338 11.3 高级主题344 11.3.1 可以为空(nullable)的类型345 11.3.2 对数学运算符的支持349 11.3.3 泛型和事件351 11.3.4 对象池354 第ⅲ部分 .net框架编程 第12章 .net基本类型359 12.1 system.object类型359 12.1.1 公共方法与受保护方法359 12.1.2 再谈值类型和引用类型361 12.1.3 装箱和取消装箱363 12.2 字符串类型364 12.2.1 属性和方法364 12.2.2 missing方法370 12.2.3 字符串优化371 12.2.4 cultureinfo类型372 12.2.5 encoding类374 12.2.6 格式化数值375 12.2.7 设置日期的格式377 12.2.8 char类型380 12.2.9 stringbuilder类型381 12.2.10 securestring类型382 12.3 数字类型384 12.3.1 属性和方法384 12.3.2 格式化数字385 12.3.3 将字符串分析为数字386 12.3.4 convert类型387 12.3.5 随机数生成器388 12.4 datetime类型389 12.4.1 日期值的加减390 12.4.2 格式化日期392 12.4.3 分析日期393 12.4.4 处理时区394 12.4.5 timezone类型395 12.4.6 guid类型396 12.5 枚举值396 12.5.1 显示并分析枚举值397 12.5.2 其他enum方法398 12.5.3 位编码值399 第13章 数组和集合400 13.1 数组类型400 13.1.1 元素的排序402 13.1.2 元素的删除、复制与移动403 13.1.3 搜索值406 13.1.4 交错数组407 13.1.5 泛型方法409 13.2 system.collections命名空间413 13.2.1 icollection、ilist和idictionary 接口413 13.2.2 arraylist类型414 13.2.3 hashtable类型418 13.2.4 sortedlist类型420 13.2.5 其他集合423 13.2.6 强类型集合的抽象类型426 13.3 泛型集合430 13.3.1 list泛型431 13.3.2 dictionary泛型433 13.3.3 linkedlist泛型435 13.3.4 其他泛型集合438 13.3.5 system.generic.objectmodel 命名空间440 第14章 正则表达式443 14.1 正则表达式概述443 14.1.1 基础知识444 14.1.2 正则表达式语言445 14.1.3 正则表达式选项450 14.2 正则表达式类型453 14.2.1 regex类型453 14.2.2 matchcollection和match 类型458 14.2.3 group类型458 14.2.4 capturecollection和 capture类型459 14.3 正则表达式应用460 14.3.1 常见regex模式460 14.3.2 查找单词和带引号的 字符串463 14.3.3 验证字符串、数字和 日期的有效性465 14.3.4 查找嵌套标记467 14.3.5 分析数据文件468 14.3.6 分析和计算表达式470 14.3.7 分析代码472 14.3.8 使用正则表达式474 第15章 文件、目录和流476 15.1 path类型477 15.2 directory和file类型478 15.2.1 列举目录和文件478 15.2.2 管理目录和文件479 15.2.3 读取和写入文件481 15.3 directoryinfo和fileinfo类型482 15.4 driveinfo类型484 15.5 filesystemwatcher类型485 15.5.1 初始化filesystemwatcher 组件485 15.5.2 获得通知486 15.5.3 疑难解答488 15.6 处理访问控制列表489 15.6.1 帐户名称和安全标识符489 15.6.2 directorysecurity和 filesecurity类型490 15.6.3 修改acl494 15.7 stream类型495 15.7.1 流操作495 15.7.2 流式阅读器和流式编写器496 15.7.3 读取和写入文本文件497 15.7.4 读取和写入二进制文件500 15.7.5 处理定长和分隔数据文件501 15.8 其他stream类型503 15.8.1 内存流503 15.8.2 基于字符串的流504 15.8.3 网络流505 15.8.4 缓冲流508 15.8.5 压缩流508 第16章 my命名空间511 16.1 my命名空间概述512 16.1.1 my.application对象512 16.1.2 my.computer对象518 16.1.3 my.user对象531 16.1.4 my.resources对象532 16.1.5 my.settings对象535 16.1.6 my.forms和my.webservices 对象541 16.2 扩展和自定义my命名空间542 16.2.1 添加顶级对象542 16.2.2 扩展my.application和 my.computer543 16.2.3 扩展my.resources544 16.2.4 扩展my.settings545 16.2.5 使用编译常量550 第17章 程序集与资源552 17.1 组件552 17.1.1 创建.net类库553 17.1.2 创建托管组件554 17.2 程序集556 17.2.1 私有和共享程序集556 17.2.2 强名称558 17.2.3 在gac中进行安装561 17.2.4 程序集级别属性562 17.2.5 internalsvisibleto属性563 17.3 资源和附属程序集565 17.3.1 资源清单565 17.3.2 本地化的窗体资源566 17.3.3 本地化强类型字符串资源568 17.3.4 自定义资源文件569 17.3.5 附属程序集570 17.3.6 附属程序集的属性571 17.4 绑定进程572 17.4.1 应用程序配置文件中的 版本策略573 17.4.2 预先加载的程序集及 gac查找575 17.4.3 基本代码提示575 17.4.4 探测576 17.4.5 程序集绑定日志查看器 实用工具(fuslogvw)578 17.5 配置文件578 17.5.1 设置运行库版本579 17.5.2 .net框架配置工具580 17.6 ngen工具581 17.6.1 使用ngen工具582 17.6.2 使用ngen服务583 17.6.3 调试本机映像584 17.6.4 ngen的属性585 第ⅳ部分 高级主题 第18章 反射589 18.1 使用程序集及模块589 18.1.1 assembly类型590 18.1.2 assemblyname类型594 18.1.3 module类型595 18.2 使用类型596 18.2.1 检索type对象596 18.2.2 探讨类型成员601 18.2.3 对于泛型的反射606 18.2.4 属性反射610 18.2.5 创建自定义对象浏览器614 18.3 反射示例617 18.3.1 动态创建对象618 18.3.2 访问成员619 18.3.3 invokemember方法620 18.3.4 创建通用比较器621 18.3.5 事件处理程序的动态注册623 18.3.6 安排动作序列628 18.3.7 随时编译631 18.3.8 性能考虑633 18.3.9 安全问题634 第19章 自定义属性636 19.1 自定义属性简介637 19.1.1 构造自定义属性类637 19.1.2 反射自定义属性639 19.2 用于csv序列化的自定义属性640 19.3 构建基准测试工具646 19.4 为windows窗体应用程序 编写插件649 19.4.1 pluginlibrary项目649 19.4.2 mainapplication和 mainapplicationstartup 项目652 19.4.3 sampleplugin项目655 19.5 n层应用程序的框架657 19.5.1 dataobjectlibrary项目658 19.5.2 datasets项目664 19.5.3 democlient项目666 19.5.4 dataobjects项目667 第20章 线程675 20.1 线程处理基础知识675 20.1.1 何时使用线程675 20.1.2 创建线程676 20.1.3 将数据传递给线程或从中 读取数据677 20.1.4 使用线程679 20.1.5 线程属性680 20.1.6 存储和共享数据682 20.1.7 线程和未处理异常683 20.1.8 调试线程685 20.2 线程的同步686 20.2.1 synclock语句687 20.2.2 同步对象689 20.2.3 易变化的读写操作691 20.2.4 monitor类型692 20.2.5 mutex类型693 20.2.6 semaphore类型696 20.2.7 readerwriterlock类型697 20.2.8 interlocked类型698 20.2.9 manualresetevent、 autoresetevent和 eventwaithandle类型699 20.3 使用线程池702 20.3.1 threadpool类型702 20.3.2 timer类型703 20.4 异步操作704 20.4.1 异步委托704 20.4.2 异步文件操作708 20.4.3 为用户类型添加异步支持709 20.5 windows窗体应用程序中的 线程处理710 20.5.1 isynchronizeinvoke接口711 20.5.2 backgroundworker组件713 第21章 序列化717 21.1 基本序列化717 21.1.1 二进制序列化718 21.1.2 soap序列化719 21.1.3 创建可序列化类型720 21.1.4 对象图721 21.1.5 序列化和事件722 21.1.6 深层对象克隆724 21.1.7 版本容错序列化(vts)725 21.2 自定义序列化726 21.2.1 ideserializationcallback接口727 21.2.2 iserializable接口728 21.2.3 序列化和反序列化事件733 21.2.4 iobjectreference接口734 21.2.5 iserializationsurrogate接口736 21.2.6 继承不可序列化类型739 第22章 pinvoke和com interop743 22.1 使用pinvoke744 22.1.1 declare关键字744 22.1.2 dllimport属性745 22.1.3 封送数据747 22.1.4 marshalas属性748 22.1.5 structlayout属性749 22.1.6 fieldoffset属性751 22.1.7 委托和回调过程753 22.1.8 in和out属性754 22.1.9 marshal类756 22.2 从.net调用com组件758 22.2.1 运行库可调用包装758 22.2.2 用visual studio导入com 组件759 22.2.3 使用所导入的interop 程序集760 22.2.4 用tlbimp导入com组件761 22.2.5 主interop程序集762 22.2.6 免注册com组件763 22.2.7 后期绑定与反射764 22.2.8 com interop封送处理765 22.2.9 线程处理问题766 22.3 从com调用.net对象767 22.3.1 com可调用包装767 22.3.2 创建示例.net组件768 22.3.3 regasm与tlbexp工具769 22.3.4 转换的详细信息769 22.3.5 使用属性控制转换770 22.3.6 处理异常情况773 22.3.7 编写com友好的.net 框架组件774 |
商品评论(0条)