
| 本书是有关C# 2.0 和.NET 2.0的一本实用的参考书,是构建高品质C#应用的一本权威指南。 |
| Stephen C. Perry在计算机领域有25年的丰富经验,曾经做过软件开发人员,担任过软件开发主管和顾问。在他的职业生涯中,曾在各种计算机平台上设计和开发过软件,包括IBM大型机和基于UNIX的小型机。在过去8年间,他致力于使用Microsoft技术为法律、医疗和纺织行业的客户提供集成的Web和桌面软件解决方案。... .. << 查看详细 |
| 序. 前言 第一部分 c#编程基础和.net概述 第1章 .net和c#介绍 1 1.1 .net框架概述 1 1.2 通用语言运行时clr 3 1.2.1 编译.net代码 3 1.2.2 通用类型系统 5 1.2.3 程序集 6 1.3 框架类库 9 1.4 使用.net框架和sdk 10 1.4.1 更新.net框架 11 1.4.2 .net框架工具 11 1.4.3 ildasm.exe 12 1.4.4 ildasm和模糊技术14 1.4.5 wincv.exe 14 1.4.6 框架配置工具 15 1.5 了解c#编译器 16 1.5.1 找到编译器 17 1.5.2 从命令行编译 17 .1.6 小结 19 1.7 习题 19 第2章 c#语言基础 20 2.1 c#程序的布局组成 20 2.2 基本类型 23 2.2.1 decimal 25 2.2.2 bool 25 2.2.3 char 25 2.2.4 byte和sbyte 25 2.2.5 short、int和long 26 2.2.6 single和double 26 2.2.7 使用parse和tryparse转换数字字符串 26 2.3 算术操作符、逻辑操作符和条件 操作符27 2.3.1 算术操作符 27 2.3.2 条件和关系操作符 27 2.3.3 流程控制语句 28 2.3.4 ifˉelse语句 29 2.3.5 switch语句 29 2.4 循环 30 2.4.1 while循环 30 2.4.2 do循环 31 2.4.3 for循环 31 2.4.4 foreach循环 32 2.4.5 循环中的跳转控制 32 2.5 c#预处理指令 33 2.5.1 条件编译 33 2.5.2 诊断指令 34 2.5.3 代码域 34 2.6 字符串 35 2.6.1 字符串直接量 35 2.6.2 字符串操作 35 2.7 枚举类型 37 2.7.1 使用枚举 38 2.7.2 system.enum的方法 39 2.7.3 枚举和位标志 39 2.8 数组 39 2.8.1 声明和创建数组 40 2.8.2 使用system.array的方法和成员属性40 2.9 引用类型和值类型 42 2.9.1 system.object和system.valuetype 43 2.9.2 引用类型和值类型的内存分配 43 2.9.3 装箱 43 2.9.4 值类型和引用类型差别小结 44 2.10 小结 45 2.11 习题 45 第3章 c#类设计 46 3.1 c#类简介 46 3.2 定义类 47 3.2.1 属性 47 3.2.2 访问修饰符 48 3.2.3 abstract、sealed和static修饰符 49 3.2.4 类标识符 49 3.2.5 基类、接口和继承 49 3.3 类成员概述 50 3.4 常量、字段和成员属性 50 3.4.1 常量 51 3.4.2 字段 51 3.4.3 成员属性 53 3.4.4 索引器 54 3.5 方法 56 3.5.1 方法修饰符 56 3.5.2 传递参数 59 3.6 构造函数 61 3.6.1 实例构造函数 61 3.6.2 私有构造函数 63 3.6.3 静态构造函数 64 3.7 委托和事件 65 3.7.1 委托 65 3.7.2 基于委托的事件处理 66 3.8 操作符重载 72 3.9 接口 74 3.9.1 创建和使用定制接口 74 3.9.2 使用接口 76 3.10 范型 77 3.11 结构 78 3.11.1 定义结构 79 3.11.2 使用结构的方法和成员属性 80 3.12 结构和类的比较 80 3.12.1 结构是值类型,类是引用类型 81 3.12.2 与类不同,结构不能被继承 81 3.12.3 选择结构或类的一般规则 81 3.13 小结 82 3.14 习题 82 第4章 使用c#对象 84 4.1 对象创建 84 4.2 异常处理 86 4.2.1 system.exception类 87 4.2.2 编写异常处理代码 87 4.2.3 例:处理通用systemexception异常 89 4.2.4 如何创建定制异常类 90 4.2.5 未处理异常 92 4.2.6 异常处理原则 93 4.3 定制类中实现system.object方法 93 4.3.1 用tostring()方法描述对象 94 4.3.2 比较对象的equals()方法 95 4.3.3 克隆来创建对象副本 97 4.4 使用.net集合类和接口 98 4.4.1 集合接口 98 4.4.2 system.collections命名空间 104 4.4.3 栈和队列 105 4.4.4 arraylist 106 4.4.5 hashtable 107 4.4.6 system.collections.generic命名空间109 4.5 对象串行化 111 4.6 对象生命周期管理 113 4.7 小结 117 4.8 习题 118 第二部分 使用.net框架类库创建应用 第5章 c#文本处理和文件i/o 119 5.1 字符和unicode 119 5.1.1 unicode 120 5.1.2 使用字符 120 5.2 string类 123 5.2.1 创建字符串 123 5.2.2 字符串操作概述 124 5.3 比较字符串 125 5.3.1 使用string.compare 125 5.3.2 使用string.compareordinal 126 5.4 搜索、修改和编码字符串内容 127 5.4.1 搜索字符串内容 127 5.4.2 搜索包含代理的字符串 127 5.4.3 字符串转换 128 5.4.4 字符串编码 129 5.5 stringbuilder 130 5.5.1 stringbuilder类概述 131 5.5.2 stringbuilder与字符串连接的比较 131 5.6 格式化数字和日期值 132 5.6.1 构造格式元素 132 5.6.2 格式化数字值 133 5.6.3 格式化日期和时间 134 5.7 正则表达式 137 5.7.1 regex类 137 5.7.2 创建正则表达式 140 5.7.3 模式匹配示例 141 5.7.4 使用组 143 5.7.5 示例:使用正则表达式 144 5.8 system.io:读写数据流的类 145 5.8.1 stream类 145 5.8.2 filestream 146 5.8.3 memorystream 147 5.8.4 bufferedstream 147 5.8.5 用streamreader和streamwriter读写文本行148 5.8.6 stringwriter和stringreader 150 5.8.7 使用cryptostream类加密 150 5.9 system.io:目录和文件 152 5.9.1 filesysteminfo 152 5.9.2 使用directoryinfo、directory和path类处理目录 153 5.9.3 使用fileinfo和file类处理文件 156 5.10 小结 157 5.11 习题 157 第6章 建立windows窗体应用 159 6.1 windows窗体编程 160 6.2 windows.forms控件类 162 6.2.1 control类 162 6.2.2 使用控件 163 6.2.3 控件事件 166 6.3 form类 170 6.3.1 设置窗体外观 170 6.3.2 设置窗体位置和大小 173 6.3.3 显示窗体 174 6.3.4 非模式窗体的生命周期 174 6.3.5 窗体交互——示例应用 175 6.3.6 属主和从属窗体 178 6.3.7 消息框和对话框 178 6.3.8 多文档界面窗体 180 6.4 使用菜单 183 6.4.1 menuitem属性 183 6.4.2 上下文菜单 183 6.5 为窗体增加帮助 185 6.5.1 tooltips 185 6.5.2 响应f1和帮助按钮 186 6.5.3 helpprovider组件 187 6.6 窗体继承 188 6.6.1 建立和使用窗体库 188 6.6.2 使用继承窗体 188 6.7 小结 189 6.8 习题 189 第7章 windows窗体控件 190 7.1 .net windows窗体控件概述 190 7.2 button类、groupbox、panel和label 192 7.2.1 button类 192 7.2.2 checkbox类 193 7.2.3 radiobutton类 193 7.2.4 groupbox类 195 7.2.5 panel类 195 7.2.6 label类 196 7.3 picturebox和textbox控件 197 7.3.1 picturebox类 197 7.3.2 textbox类 199 7.4 listbox、checkedlistbox和combobox类 200 7.4.1 listbox类 200 7.4.2 其他列表控件:combobox和checkedlistbox 203 7.5 listview和treeview类 204 7.5.1 listview类 204 7.5.2 treeview类 208 7.6 progressbar、timer和statusstrip类 212 7.7 建立定制控件 214 7.7.1 扩展控件 214 7.7.2 建立定制用户控件 214 7.7.3 用户控件示例 214 7.7.4 使用定制用户控件 216 7.7.5 设计时使用用户控件 217 7.8 拖放控件 217 7.9 使用资源 220 7.9.1 使用资源文件 221 7.9.2 用资源文件创建本地化窗体 223 7.10 小结 225 7.11 习题 225 第8章 使用gdi+的.net图形 226 8.1 gdi+概述 226 8.1.1 graphics类 227 8.1.2 paint事件 229 8.2 使用graphics对象 231 8.2.1 基本二维图形 231 8.2.2 pen 234 8.2.3 brush 236 8.2.4 color 239 8.2.5 示例:建立颜色浏览器 240 8.3 图像 243 8.3.1 加载和存储图像 244 8.3.2 处理图像 246 8.3.3 示例:使用图像 247 8.3.4 microsoft windows平台gdi和bitblt的有关提示 252 8.4 小结 253 8.5 习题 253 第9章 字体、文本和打印.. 255 9.1 字体 255 9.1.1 字体族 256 9.1.2 font类 256 9.2 绘制文本串 258 9.2.1 绘制多行文本259 9.2.2 用stringformat类格式化字符串 259 9.2.3 使用制表位 260 9.2.4 字符串截断、对齐和自动换行 261 9.3 打印 262 9.3.1 概述 262 9.3.2 printdocument类 263 9.3.3 打印机设置 264 9.3.4 页面设置 265 9.3.5 printdocument事件 266 9.3.6 printpage事件 267 9.3.7 预览打印报表 268 9.3.8 报表示例 269 9.3.9 创建定制printdocument类 271 9.4 小结 273 9.5 习题 273 第10章 在.net中使用xml 275 10.1 使用xml 275 10.1.1 使用xml串行化创建xml数据 276 10.1.2 xml模式定义(xsd) 278 10.1.3 使用xml样式表 280 10.2 xml数据读取技术 281 10.2.1 xmlreader类 282 10.2.2 xmlnodereader类 285 10.2.3 xmlreadersettings类 286 10.2.4 用xml模式验证xml数据 287 10.2.5 读取xml数据的其他方法 287 10.3 xml数据写出技术 288 10.4 用xpath搜索xml 290 10.4.1 构造xpath查询 290 10.4.2 xmldocument和xpath 292 10.4.3 xpathdocument和xpath 292 10.4.4 xmldatadocument和xpath 293 10.5 小结 295 10.6 习题 295 第11章 ado.net 296 11.1 ado.net体系结构概述 296 11.1.1 .net中的ole db数据提供者 297 11.1.2 .net数据提供者 297 11.2 数据访问模型:连接模型和无连接模型299 11.2.1 连接模型 299 11.2.2 无连接模型 300 11.3 ado.net连接模型 301 11.3.1 连接类 301 11.3.2 命令对象 304 11.3.3 datareader对象 307 11.4 数据集、数据表和无连接模型 308 11.4.1 dataset类 309 11.4.2 数据表 309 11.4.3 向dataset加载数据 312 11.4.4 定义dataset中表之间的关系 316 11.4.5 连接模型和无连接模型的选择 318 11.5 xml和ado.net 318 11.5.1 用dataset创建xml数据和模式文件 318 11.5.2 从xml创建dataset模式 320 11.5.3 将xml数据读入dataset 320 11.6 小结 322 11.7 习题 322 第12章 windows窗体控件的数据绑定 324 12.1 数据绑定概述 324 12.1.1 简单数据绑定 325 12.1.2 与列表控件的复杂绑定 326 12.1.3 单向和双向数据绑定 327 12.1.4 使用绑定管理器 328 12.2 应用中使用简单和复杂数据绑定 330 12.2.1 绑定到datatable 330 12.2.2 控件绑定到arraylist 332 12.2.3 向数据源添加元素 334 12.2.4 验证更新 335 12.2.5 更新原始数据库 335 12.3 datagridview类 336 12.3.1 成员属性 336 12.3.2 事件 341 12.3.3 建立主表-明细表datagridview 344 12.3.4 虚拟模式 346 12.4 小结 349 12.5 习题 350 第三部分 c#和.net框架的高级使用 第13章 异步编程和多线程 351 13.1 什么是线程 351 13.2 异步编程 353 13.2.1 异步委托 354 13.2.2 实现异步调用的示例 356 13.3 直接使用线程 362 13.3.1 创建和使用线程 362 13.3.2 多线程实际应用 365 13.3.3 使用线程池 367 13.3.4 定时器 368 13.4 线程同步 369 13.4.1 synchronization属性 371 13.4.2 monitor类 371 13.4.3 mutex 372 13.4.4 semaphore 373 13.4.5 避免死锁 374 13.4.6 同步技术小结 375 13.5 小结 375 13.6 习题 376 第14章 利用远程通信创建分布式应用 378 14.1 应用域 378 14.1.1 应用域的优点 378 14.1.2 应用域和程序集 379 14.1.3 使用appdomain类 379 14.2 远程通信 381 14.2.1 远程通信体系结构 382 14.2.2 远程通信类型384 14.2.3 客户端激活对象 386 14.2.4 服务器激活对象 386 14.2.5 类型注册 387 14.2.6 与服务器激活对象sao的远程通信 389 14.2.7 与客户端激活对象cao的远程通信 395 14.2.8 分布式应用的设计原则 399 14.3 租约和缔约 400 14.3.1 租约 400 14.3.2 缔约 402 14.4 小结 404 14.5 习题 404 第15章 代码优化、安全与部署 406 15.1 遵循.net代码设计准则 407 15.2 强命名程序集 409 15.2.1 创建强命名程序集 410 15.2.2 延迟签名 411 15.2.3 全局程序集缓存(gac) 411 15.2.4 版本 412 15.3 安全 412 15.3.1 权限和权限集 413 15.3.2 证据 416 15.3.3 安全策略 418 15.3.4 配置安全策略 419 15.3.5 .net框架配置工具 420 15.3.6 示例:使用配置工具配置代码访问安全 422 15.3.7 为程序集请求权限 424 15.3.8 程序式安全 426 15.4 部署应用的有关考虑 431 15.4.1 microsoft windows部署:xcopy部署与windows installer 431 15.4.2 程序集部署到gac中 431 15.4.3 部署私有程序集 432 15.4.4 使用codebase配置 432 15.4.5 使用配置文件管理程序集的多个版本 433 15.4.6 程序集版本和产品信息 433 15.5 小结 434 15.6 习题 434 第四部分 internet编程 第16章 asp.net web表单和控件 437 16.1 internet的客户端-服务器交互 438 16.1.1 web应用示例:实现bmi计算器 438 16.1.2 使用asp.net实现bmi计算器 441 16.1.3 内联代码模型 442 16.1.4 代码隐藏模型 447 16.1.5 部分类代码隐藏 449 16.1.6 page类 450 16.2 web表单控件 452 16.2.1 web控件概述 453 16.2.2 指定web控件的外观 454 16.2.3 简单控件 454 16.2.4 列表控件 457 16.2.5 datalist控件 459 16.3 数据绑定和数据源控件 461 16.3.1 绑定到datareader 461 16.3.2 绑定到dataset 463 16.3.3 数据源控件 464 16.4 验证控件 469 16.5 母版页和内容页 472 16.5.1 创建母版页 473 16.5.2 创建内容页 474 16.5.3 从内容页访问母版页 475 16.6 建立和使用定制web控件 475 16.6.1 定制控件示例 476 16.6.2 使用定制控件 477 16.6.3 控件状态管理 478 16.6.4 复合控件 479 16.7 选择web控件显示数据 481 16.8 小结 481 16.9 习题 481 第17章 asp.net应用环境 483 17.1 http请求和响应类 483 17.1.1 httprequest对象 484 17.1.2 httpresponse对象 486 17.2 asp.net和配置文件 489 17.2.1 web.config剖析 490 17.2.2 增加定制配置段 493 17.3 asp.net应用安全 495 17.3.1 表单认证 495 17.3.2 表单认证示例 497 17.4 状态维护 500 17.4.1 应用状态 501 17.4.2 会话状态 502 17.5 缓存 504 17.5.1 页面输出缓存 504 17.5.2 数据缓存 506 17.6 用webrequest和webresponse创建web客户508 17.6.1 webrequest和webresponse类 508 17.6.2 web客户示例 509 17.7 http管线 510 17.7.1 管线中处理请求 510 17.7.2 httpapplication类 512 17.7.3 http模块 514 17.7.4 http处理器 517 17.8 小结 520 17.9 习题 520 第18章 xml web服务 521 18.1 web服务简介 521 18.1.1 发现和使用web服务 522 18.1.2 uddi简介 522 18.2 构建xml web服务 524 18.2.1 手动创建web服务 525 18.2.2 用vs.net创建web服务 527 18.2.3 用webservice和webmethod属性扩展web服务 528 18.3 构建xml web服务客户 530 18.3.1 创建简单的客户来访问web服务类 530 18.3.2 用visual studio.net创建代理 536 18.4 理解wsdl和soap 537 18.4.1 wsdl 537 18.4.2 soap 539 18.5 在web服务中使用复杂数据类型 544 18.5.1 返回图像的web服务 544 18.5.2 使用amazon web服务 545 18.5.3 为amazon web服务创建代理 547 18.5.4 构建winforms web服务客户 548 18.6 web服务性能 550 18.6.1 配置http连接 550 18.6.2 处理大量数据 551 18.7 小结 551 18.8 习题 551 附录 附录a .net2.0和c#2.0的特有特性 553 附录b datagridview事件和委托 555 习题答案... 563 |
商品评论(0条)