C#高级编程(第6版)(修订版)

爱上编程的小男孩 32 0 pdf 2019-04-10 08:04:23

第一章 .NET 体系结构 ............................................................................................................................... 13 1.1 C#与.NET 的关系 ........................................................................................................................... 13 1.2 公共语言运行库 .................................. ........................................................................................... 13 1.2.1 平台无关性 .......................................................................................................................... 13 1.2.2 提高性能 .............................................................................................................................. 14 1.2.3 语言的互操作性 .................................................................................................................. 14 1.3 中间语言 ........................................................................................................................................ 15 1.3.1 面向对象和接口的支持 ...................................................................................................... 16 1.3.2 相异值类型和引用类型 ...................................................................................................... 16 1.3.3 强数据类型 .......................................................................................................................... 16 1.3.4 通过异常处理错误 .............................................................................................................. 21 1.3.5 特性的使用 .......................................................................................................................... 21 1.4 程序集 ............................................................................................................................................ 22 1.4.1 私有程序集 .......................................................................................................................... 22 1.4.2 共享程序集 .......................................................................................................................... 22 1.4.3 反射 ..................................................................................................................................... 23 1.5 .NET Framework 类 ........................................................................................................................ 23 1.6 命名空间 ........................................................................................................................................ 24 1.7 用C#创建.NET 应用程序 .............................................................................................................. 24 1.7.1 创建ASP.NET 应用程序 .................................................................................................... 24 1.7.2 创建Windows 窗体 ............................................................................................................. 26 1.7.3 使用Windows Presentation Foundation(WPF) ................................................................... 26 1.7.4 Windows 控件 ...................................................................................................................... 26 1.7.5 Windows 服务 ...................................................................................................................... 26 1.7.6 Windows Communication Foundation(WCF) ...................................................................... 26 1.8 C#在.NET 企业体系结构中的作用 ............................................................................................... 27 1.9 本章小结 ........................................................................................................................................ 27 第2 章 C# 基础 ......................................................................................................................................... 29 2.1 引言 ................................................................................................................................................ 29 2.2 第一个C#程序 ............................................................................................................................... 29 2.2.1 代码 ..................................................................................................................................... 30 2.2.2 编译并运行程序 .................................................................................................................. 30 2.2.3 详细介绍 .............................................................................................................................. 30 2.3 变量 ................................................................................................................................................ 32 2.3.1 变量的初始化 ...................................................................................................................... 32 2.3.2 类型推断 .............................................................................................................................. 33 2.3.3 变量的作用域 ...................................................................................................................... 34 2.3.4 常量 ..................................................................................................................................... 36 2.4 预定义数据类型 ............................................................................................................................. 37 2.4.1 值类型和引用类型 .............................................................................................................. 37 2.4.2 CTS 类型 .............................................................................................................................. 38 2.4.3 预定义的值类型 .................................................................................................................. 38 2.4.4 预定义的引用类型 .............................................................................................................. 40 2.5 流控制 ............................................................................................................................................ 42 2.5.1 条件语句 .............................................................................................................................. 42 2.5.2 循环 ..................................................................................................................................... 46 2 / 826 2.5.3 跳转语句 .............................................................................................................................. 49 2.6 枚举 ................................................................................................................................................ 49 2.7 数组 ................................................................................................................................................ 51 2.8 命名空间 ........................................................................................................................................ 52 2.8.1 using 语句 ............................................................................................................................ 53 2.8.2 命名空间的别名 .................................................................................................................. 53 2.9 Main()方法 ..................................................................................................................................... 54 2.9.1 多个Main()方法 .................................................................................................................. 54 2.9.2 给Main()方法传送参数 ...................................................................................................... 55 2.10 有关编译C#文件的更多内容 ..................................................................................................... 56 2.11 控制台I/O .................................................................................................................................... 57 2.12 使用注释 ...................................................................................................................................... 59 2.12.1 源文件中的内部注释 ........................................................................................................ 59 2.12.2 XML 文档说明 .................................................................................................................. 59 2.13 C#预处理器指令 .......................................................................................................................... 61 2.13.1 #define 和 #undef .............................................................................................................. 61 2.13.2 #if, #elif, #else 和#endif ..................................................................................................... 62 2.13.3 #warning 和 # error ........................................................................................................... 62 2.13.4 #region 和#endregion ......................................................................................................... 63 2.13.5 #line ................................................................................................................................... 63 2.13.6 #pragma .............................................................................................................................. 63 2.14 C#编程规则 ................................................................................................................................. 64 2.14.1 用于标识符的规则 ............................................................................................................ 64 2.14.2 用法约定 ............................................................................................................................ 64 2.15 本章小结 ...................................................................................................................................... 69 第3 章 对象和类型 .................................................................................................................................... 70 3.1 类和结构 ........................................................................................................................................ 70 3.2 类成员 ............................................................................................................................................ 71 3.2.1 数据成员 .............................................................................................................................. 71 3.2.2 函数成员 .............................................................................................................................. 72 3.2.3 只读字段 .............................................................................................................................. 83 3.3 匿名类型 ........................................................................................................................................ 84 3.4 结构 ................................................................................................................................................ 84 3.4.1 结构是值类型 ...................................................................................................................... 86 3.4.2 结构和继承 .......................................................................................................................... 86 3.4.3 结构的构造函数 .................................................................................................................. 87 3.5 部分类 ............................................................................................................................................ 87 3.6 静态类 ............................................................................................................................................ 88 3.7 Object 类 ........................................................................................................................................ 88 3.7.1 System.Object 方法 .............................................................................................................. 88 3.7.2 ToString()方法 ..................................................................................................................... 89 3.8 扩展方法 ........................................................................................................................................ 90 3.9 本章小结 ........................................................................................................................................ 91 第4 章 继 承 ........................................................................................................................................... 91 4.1 继承的类型 .................................................................................................................................... 91 4.1.1 实现继承和接口继承 .......................................................................................................... 91 3 / 826 4.1.2 多重继承 .............................................................................................................................. 92 4.1.3 结构和类 .............................................................................................................................. 92 4.2 实现继承 ........................................................................................................................................ 92 4.2.1 虚方法 ................................................................................................................................. 93 4.2.2 隐藏方法 .............................................................................................................................. 94 4.2.3 调用函数的基类版本 .......................................................................................................... 95 4.2.4 抽象类和抽象函数 .............................................................................................................. 96 4.2.5 密封类和密封方法 .............................................................................................................. 96 4.2.6 派生类的构造函数 .............................................................................................................. 97 4.3 修饰符 .......................................................................................................................................... 101 4.3.1 可见性修饰符 .................................................................................................................... 101 4.3.2 其他修饰符 ........................................................................................................................ 102 4.4 接口 .............................................................................................................................................. 102 4.4.1 定义和实现接口 ................................................................................................................ 103 4.4.2 派生的接口 ........................................................................................................................ 106 4.5 本章小结 ...................................................................................................................................... 108 第5 章 数 组 ......................................................................................................................................... 109 5.1 简单数组 ...................................................................................................................................... 109 5.1.1 数组的声明 ........................................................................................................................ 109 5.1.2 数组的初始化 .................................................................................................................... 109 5.1.3 访问数组元素 .................................................................................................................... 110 5.1.4 使用引用类型 .................................................................................................................... 110 5.2 多维数组 ...................................................................................................................................... 111 5.3 锯齿数组 ...................................................................................................................................... 112 5.4 Array 类 ........................................................................................................................................ 113 5.4.1 属性 ................................................................................................................................... 113 5.4.2 创建数组 ............................................................................................................................ 113 5.4.3 复制数组 ............................................................................................................................ 114 5.4.4 排序 ................................................................................................................................... 115 5.5 数组和集合接口 ........................................................................................................................... 118 5.5.1 IEumerable 接口 ................................................................................................................ 118 5.5.2 ICollection 接口 ................................................................................................................. 118 5.5.3 IList 接口 ........................................................................................................................... 118 5.6 枚举 .............................................................................................................................................. 119 5.6.1 IEnumerator 接口 ............................................................................................................... 119 5.6.2 foreach 语句 ....................................................................................................................... 119 5.6.3 yield 语句 ........................................................................................................................... 119 5.7 本章小结 ...................................................................................................................................... 124 第6 章 运算符和类型强制转换 ............................................................................................................... 124 6.1 运算符 .......................................................................................................................................... 124 6.1.1 运算符的简化操作 ............................................................................................................ 126 6.1.2 条件运算符 ........................................................................................................................ 126 6.1.3 checked 和unchecked 运算符 ........................................................................................... 127 6.1.4 is 运算符 ............................................................................................................................ 128 6.1.5 as 运算符 ............................................................................................................................ 128 6.1.6 sizeof 运算符 ..................................................................................................................... 128 4 / 826 6.1.7 typeof 运算符 ..................................................................................................................... 128 6.1.8 可空类型和运算符 ............................................................................................................ 128 6.1.9 空接合运算符 .................................................................................................................... 129 6.1.10 运算符的优先级 .............................................................................................................. 129 6.2 类型的安全性 ............................................................................................................................... 130 6.2.1 类型转换 ............................................................................................................................ 130 6.2.2 装箱和拆箱 ........................................................................................................................ 133 6.3 对象的相等比较 ........................................................................................................................... 133 6.3.1 引用类型的相等比较 ........................................................................................................ 134 6.3.2 值类型的相等比较 ............................................................................................................ 134 6.4 运算符重载 .................................................................................................................................. 135 6.4.1 运算符的工作方式 ............................................................................................................ 136 6.4.2 运算符重载的示例:Vector 结构 ..................................................................................... 136 6.5 用户定义的数据类型转换 ........................................................................................................... 142 6.5.1 执行用户定义的类型转换 ................................................................................................ 143 6.5.2 多重数据类型转换 ............................................................................................................ 148 6.6 本章小结 ...................................................................................................................................... 151 第7 章 委托和事件 .................................................................................................................................. 152 7.1 委托 .............................................................................................................................................. 152 7.1.1 在C#中声明委托 .............................................................................................................. 153 7.1.2 在C#中使用委托 .............................................................................................................. 153 7.1.3 简单的委托示例 ................................................................................................................ 156 7.1.4 BubbleSorter 示例 .............................................................................................................. 158 7.1.5 多播委托 ............................................................................................................................ 160 7.1.6 匿名方法 ............................................................................................................................ 164 7.1.7 λ 表达式 ............................................................................................................................ 165 7.1.8 协变和抗变 ........................................................................................................................ 166 7.2 事件 .............................................................................................................................................. 167 7.2.1 从接收器的角度讨论事件 ................................................................................................ 168 7.2.2 生成事件 ............................................................................................................................ 170 7.3 本章小结 ...................................................................................................................................... 173 第8 章 字符串和正则表达式 ................................................................................................................... 174 8.1 System.String 类 ........................................................................................................................... 175 8.1.1 创建字符串 ........................................................................................................................ 176 8.1.2 StringBuilder 成员 ............................................................................................................. 178 8.1.3 格式化字符串 .................................................................................................................... 179 8.2 正则表达式 .................................................................................................................................. 183 8.2.1 正则表达式概述 ................................................................................................................ 184 8.2.2 RegularExpressionsPlayaround 示例 ................................................................................. 184 8.2.3 显示结果 ............................................................................................................................ 186 8.2.4 匹配、组合和捕获 ............................................................................................................ 188 8.3 本章小结 ...................................................................................................................................... 189 第9 章 泛 型 ......................................................................................................................................... 190 9.1 概述 .............................................................................................................................................. 191 9.1.1 性能 ................................................................................................................................... 191 9.1.2 类型安全 ............................................................................................................................ 192 5 / 826 9.1.3 二进制代码的重用 ............................................................................................................ 192 9.1.4 代码的扩展 ........................................................................................................................ 193 9.1.5 命名约定 ............................................................................................................................ 193 9.2 创建泛型类 .................................................................................................................................. 193 9.3 泛型类的特性 ............................................................................................................................... 197 9.3.1 默认值 ............................................................................................................................... 198 9.3.2 约束 ................................................................................................................................... 198 9.3.3 继承 ................................................................................................................................... 200 9.3.4 静态成员 ............................................................................................................................ 201 9.4 泛型接口 ...................................................................................................................................... 201 9.5 泛型方法 ...................................................................................................................................... 202 9.6 泛型委托 ...................................................................................................................................... 204 9.6.1 执行委托调用的方法 ........................................................................................................ 205 9.6.2 对Array 类使用泛型委托 ................................................................................................. 206 9.7 Framework 的其他泛型类型 ........................................................................................................ 208 9.7.1 结构Nullable .............................................................................................................. 208 9.7.2 EventHandler .............................................................................................. 210 9.8 本章小结 ...................................................................................................................................... 210 第10 章 集合 ............................................................................................................................................ 211 10.1 集合接口和类型 ......................................................................................................................... 211 10.2 列表 ............................................................................................................................................ 214 10.2.1 创建列表 .......................................................................................................................... 215 10.2.2 只读集合 .......................................................................................................................... 223 10.3 队列 ............................................................................................................................................ 223 10.4 栈 ................................................................................................................................................ 227 10.5 链表 ............................................................................................................................................ 228 10.6 有序表 ........................................................................................................................................ 233 10.7 字典 ............................................................................................................................................ 235 10.7.1 键的类型 .......................................................................................................................... 235 10.7.2 字典示例 .......................................................................................................................... 236 10.7.3 Lookup 类 ......................................................................................................................... 239 10.7.4 其他字典类 ...................................................................................................................... 240 10.8 HashSet ....................................................................................................................................... 241 10.9 位数组 ........................................................................................................................................ 244 10.9.1 BitArray ............................................................................................................................ 244 10.9.2 BitVector32 ....................................................................................................................... 246 10.10 性能 .......................................................................................................................................... 249 10.11 本章小结 .................................................................................................................................. 250 第11 章 Language Integrated Query ......................................................................................................... 251 11.1 LINQ 概述 ........................................................................................................................... 251 11.1.1 使用List的查询 .......................................................................................................... 252 11.1.2 扩展方法 ............................................................................................................................ 262 11.1.3 λ 表达式 ............................................................................................................................ 265 11.1.4 LINQ 查询 ........................................................................................................................ 266 11.1.5 推迟查询的执行 ............................................................................................................... 267 11.2 标准的查询操作符 ............................................................................................................. 269 6 / 826 11.2.1 过滤 ............................................................................................................................... 271 11.2.2 用索引来过滤 ............................................................................................................... 272 11.2.3 类型过滤 ....................................................................................................................... 272 11.2.4 复合的from 子句 ......................................................................................................... 273 11.2.5 排序 ............................................................................................................................... 274 11.2.6 分组 ............................................................................................................................... 276 11.2.7 对嵌套的对象分组 ....................................................................................................... 278 11.2.8 连接 ............................................................................................................................... 279 11.2.9 设置操作 ....................................................................................................................... 282 11.2.10 分区 ............................................................................................................................. 283 11.2.11 合计操作符 ................................................................................................................ 285 11.2.12 转换 ............................................................................................................................... 287 11.2.13 生成操作符 ................................................................................................................ 289 11.3 表达式树 ............................................................................................................................. 290 11.4 LINQ 提供程序 .................................................................................................................. 295 11.5 本章小结 ............................................................................................................................. 295 第12 章 内存管理和指针 ......................................................................................................................... 296 12.1 后台内存管理 .............................................................................................................................. 296 12.1.1 值数据类型 ...................................................................................................................... 297 12.1.2 引用数据类型 .................................................................................................................. 298 12.1.3 垃圾收集 .......................................................................................................................... 300 12.2 释放未托管的资源 ...................................................................................................................... 300 12.2.1 析构函数 .......................................................................................................................... 301 12.2.2 IDisposable 接口 ............................................................................................................ 302 12.2.3 实现IDisposable 接口和析构函数 .............................................................................. 303 12.3 不安全的代码 .............................................................................................................................. 305 12.3.1 指针 ................................................................................................................................. 305 12.3.2 指针示例:PointerPlayaround ..................................................................................... 312 12.3.3 使用指针优化性能 .......................................................................................................... 317 12.4 本章小结 ..................................................................................................................................... 319 第13 章 反 射 .......................................................................................................................................... 320 13.1 定制特性 ..................................................................................................................................... 321 13.1.1 编写定制特性 .................................................................................................................. 321 13.1.2 定制特性示例:WhatsNewAttributes .......................................................................... 324 13.2 反射 ............................................................................................................................................. 327 13.2.1 System.Type 类 ............................................................................................................. 327 13.2.2 TypeView 示例 ............................................................................................................... 329 13.2.3 Assembly 类 ................................................................................................................... 331 13.2.4 完成WhatsNewAttributes 示例 ................................................................................... 332 13.3 本章小结 ............................................................................................................................. 336 第14 章 错误和异常 ................................................................................................................................ 337 14.1 错误和异常处理 .......................................................................................................................... 337 14.1.1 异常类 .............................................................................................................................. 337 14.1.2 捕获异常 .......................................................................................................................... 338 14.1.3 用户定义的异常类 .......................................................................................................... 347 14.2 本章小结 ..................................................................................................................................... 354 7 / 826 第15 章 Visual Studio 2008 ...................................................................................................................... 354 15.1 使用Visual Studio 2005 .............................................................................................................. 354 15.1.1 创建项目 .......................................................................................................................... 356 15.1.2 解决方案和项目 .............................................................................................................. 360 15.1.3 Windows 应用程序代码 ................................................................................................. 362 15.1.4 读取Visual Studio 6 项目 ............................................................................................ 362 15.1.5 项目的浏览和编码 .......................................................................................................... 363 15.1.6 生成项目 .......................................................................................................................... 368 15.1.7 调试 ................................................................................................................................. 370 15.2 修订功能 ..................................................................................................................................... 372 15.3 Visual Studio 2005 for .NET Framework 3.0 ............................................................................... 373 15.3.1 .NET 3.0 的项目类型 ..................................................................................................... 374 15.3.2 在Visual Studio 中建立WPF 应用程序 .................................................................... 375 15.3.3 在Visual Studio 中建立WF 应用程序 ....................................................................... 375 15.4 本章小结 ..................................................................................................................................... 376 第16 章 部 署 .......................................................................................................................................... 376 16.1 部署的设计 ................................................................................................................................. 377 16.2 部署选项 ..................................................................................................................................... 377 16.2.1 Xcopy 实用工具 .............................................................................................................. 377 16.2.2 Copy Web 工具 .............................................................................................................. 377 16.2.3 发布Web 站点 ............................................................................................................... 377 16.2.4 部署项目 .......................................................................................................................... 377 16.3 部署的要求 ................................................................................................................................. 378 16.4 部署.NET 运行库 ....................................................................................................................... 378 16.5 简单的部署 ................................................................................................................................. 379 16.5.1 Xcopy 部署 ...................................................................................................................... 379 16.5.2 Xcopy 和Web 应用程序 ............................................................................................... 380 16.5.3 Copy Web 工具 .............................................................................................................. 380 16.5.4 发布Web 站点 ............................................................................................................... 380 16.6 Installer 项目 ............................................................................................................................... 380 16.6.1 Windows Installer ........................................................................................................... 381 16.6.2 创建安装程序 .................................................................................................................. 381 16.7 ClickOnce ..................................................................................................................................... 388 16.7.1 ClickOnce 操作 ............................................................................................................... 388 16.7.2 发布应用程序 .................................................................................................................. 389 16.7.3 ClickOnce 设置 ............................................................................................................... 389 16.7.4 应用程序缓存 .................................................................................................................. 389 16.7.5 安全性 .............................................................................................................................. 390 16.7.6 高级选项 .......................................................................................................................... 390 16.8 本章小结 ..................................................................................................................................... 393 第31 章Windows 窗 体 ............................................................................................................................. 394 31.1 创建Windows 窗体应用程序 .................................................................................................... 395 31.2 Control 类 ................................................................................................................................... 401 31.2.1 大小和位置 ...................................................................................................................... 401 31.2.2 外观 ................................................................................................................................. 402 31.2.3 用户交互操作 .................................................................................................................. 402 8 / 826 31.2.4 Windows 功能 .................................................................................................................. 404 31.2.5 杂项功能 .......................................................................................................................... 404 31.3 标准控件和组件 ......................................................................................................................... 404 31.3.1 Button 控件 ...................................................................................................................... 405 31.3.2 CheckBox 控件 ................................................................................................................ 406 31.3.3 RadioButton 控件 ............................................................................................................. 407 31.3.4 ComboBox 控件、ListBox 控件和CheckedListBox 控件 ............................................ 407 31.3.5 DateTimePicker 控件 ....................................................................................................... 410 31.3.6 ErrorProvider 组件 ........................................................................................................... 410 31.3.7 HelpProvider 组件 ............................................................................................................ 411 31.3.8 ImageList 组件 ................................................................................................................. 412 31.3.9 Label 控件 ........................................................................................................................ 412 31.3.10 ListView 控件 ................................................................................................................ 413 31.3.11 PictureBox 控件 ............................................................................................................. 415 31.3.12 ProgressBar 控件............................................................................................................ 415 31.3.13 TextBox 控件、RichTextBox 控件与MaskedTextBox 控件 ...................................... 415 31.3.14 Panel 控件 ...................................................................................................................... 417 31.3.15 FlowLayoutPanel 和TableLayoutPanel 控件 ................................................................ 417 31.3.16 SplitContainer 控件 ........................................................................................................ 418 31.3.17 TabControl 控件和TabPages 控件 ............................................................................... 418 31.3.18 ToolStrip 控件 ................................................................................................................ 419 31.3.19 MenuStrip 控件 .............................................................................................................. 422 31.3.20 ContextMenuStrip 控件 ................................................................................................. 422 31.3.21 ToolStripMenuItem 控件 ............................................................................................... 422 31.3.22 ToolStripManager 类 ...................................................................................................... 423 31.3.23 ToolStripContainer 控件 ................................................................................................ 423 31.4 窗体 ............................................................................................................................................ 423 31.4.1 Form 类 ............................................................................................................................ 423 31.4.2 多文档界面 ...................................................................................................................... 429 31.4.3 定制控件 .......................................................................................................................... 429 31.5 本章小结 .................................................................................................................................... 442 第32 章数 据 绑 定 .................................................................................................................................. 443 32.1 DataGridView 控件 .................................................................................................................... 443 32.1.1 显示列表数据 .................................................................................................................. 444 32.1.2 数据源 .............................................................................................................................. 445 32.3 数据绑定 .................................................................................................................................... 455 32.3.1 简单的绑定 ...................................................................................................................... 455 32.3.2 数据绑定对象 .................................................................................................................. 456 32.4 Visual Studio 和数据访问 .......................................................................................................... 459 32.4.1 创建一个连接 .................................................................................................................. 460 32.4.2 选择数据 .......................................................................................................................... 461 32.4.3 更新数据源 ...................................................................................................................... 462 32.4.4 其他常见的要求 .............................................................................................................. 462 32.5 本章小结 .................................................................................................................................... 471 第33 章使用GDI+绘图 ............................................................................................................................... 471 33.1 理解绘图规则 ............................................................................................................................. 472 9 / 826 33.1.1 GDI 和GDI+ .................................................................................................................... 472 33.1.2 绘制图形 .......................................................................................................................... 474 33.1.3 使用OnPaint()绘制图形 ................................................................................................. 476 33.1.4 使用剪切区域 .................................................................................................................. 478 33.2 测量坐标和区域 ......................................................................................................................... 479 33.2.1 Point 和PointF 结构 ........................................................................................................ 480 33.2.2 Size 和SizeF 结构 ........................................................................................................... 481 33.2.3 Rectangle 和RectangleF 结构 ......................................................................................... 482 33.2.4 Region .............................................................................................................................. 483 33.3 调试须知 .................................................................................................................................... 483 33.4 绘制可滚动的窗口 ..................................................................................................................... 484 33.5 世界、页面和设备坐标 ............................................................................................................. 489 33.6 颜色 ............................................................................................................................................ 490 33.6.1 红绿蓝(RGB)值 ............................................................................................................... 490 33.6.2 命名的颜色 ...................................................................................................................... 491 33.6.3 图形显示模式和安全的调色板 ...................................................................................... 491 33.6.4 安全调色板 ...................................................................................................................... 492 33.7 画笔和钢笔 ................................................................................................................................ 492 33.7.1 画笔 ................................................................................................................................. 493 33.7.2 钢笔 ................................................................................................................................. 494 33.8 绘制图形和线条 ......................................................................................................................... 494 33.9 显示图像 .................................................................................................................................... 496 33.10 处理图像时的问题 ................................................................................................................... 499 33.11 绘制文本 .................................................................................................................................. 499 33.12 简单的文本示例 ....................................................................................................................... 500 33.13 字体和字体系列 ....................................................................................................................... 501 33.14 示例:枚举字体系列 ............................................................................................................... 503 33.15 编辑文本文档:CapsEditor 示例 ............................................................................................ 505 33.15.1 Invalidate()方法 ............................................................................................................. 509 33.15.2 计算项和文档的大小 .................................................................................................... 510 33.15.3 OnPaint() ........................................................................................................................ 512 33.15.4 坐标转换 ........................................................................................................................ 513 33.15.5 响应用户的输入 ............................................................................................................ 515 33.16 打印 .......................................................................................................................................... 518 33.17 本章小结 .................................................................................................................................. 523 第34 章Windows Presentation Foundation ................................................................................................. 524 34.1 概述 ............................................................................................................................................ 525 34.1.1 XAML .............................................................................................................................. 525 34.1.2 设计人员和开发人员的合作 .......................................................................................... 529 34.1.3 类层次结构 ...................................................................................................................... 530 31.1.4 命名空间 .......................................................................................................................... 532 34.2 形状 ............................................................................................................................................ 533 34.3 变换 ............................................................................................................................................ 537 34.4 笔刷 ............................................................................................................................................ 537 34.4.1 SolidColorBrush ............................................................................................................... 537 34.4.2 LinearGradientBrush ........................................................................................................ 538 10 / 826 34.4.3 RadialGradientBrush ........................................................................................................ 539 34.4.4 DrawingBrush .................................................................................................................. 539 34.4.5 ImageBrush ...................................................................................................................... 540 34.4.6 VisualBrush ...................................................................................................................... 540 34.5 控件 ............................................................................................................................................ 542 34.5.1 简单控件 .......................................................................................................................... 542 34.5.2 内容控件 .......................................................................................................................... 543 34.5.3 有标题的内容控件 .......................................................................................................... 544 34.5.4 项控件 .............................................................................................................................. 545 34.5.5 带标题的项控件 .............................................................................................................. 545 34.6 布局 ............................................................................................................................................ 546 34.6.1 StackPanel ........................................................................................................................ 546 34.6.2 WrapPanel ........................................................................................................................ 547 34.6.3 Canvas .............................................................................................................................. 547 34.6.4 DockPanel ........................................................................................................................ 548 34.6.5 Grid .................................................................................................................................. 551 34.7 事件处理 .................................................................................................................................... 553 34.8 样式、模板和资源 ..................................................................................................................... 554 34.8.1 样式 ................................................................................................................................. 554 34.8.2 资源 ................................................................................................................................. 555 34.8.3 创建列表框的样式 .......................................................................................................... 572 34.9 本章小结 .................................................................................................................................... 580 第35 章高 级 WPF .................................................................................................................................... 581 35.1 数据绑定 .................................................................................................................................... 581 35.1.1 概述 ................................................................................................................................. 581 35.1.2 用XAML 绑定 ................................................................................................................ 582 35.1.3 简单对象的绑定 .............................................................................................................. 584 35.1.4 对象数据提供程序 .......................................................................................................... 587 35.1.5 列表绑定 .......................................................................................................................... 588 35.1.6 绑定到XML 上 ............................................................................................................... 599 35.1.7 绑定的验证 .......................................................................................... ........................................................................................... 13 1.2.1 平台无关性 .......................................................................................................................... 13 1.2.2 提高性能 .............................................................................................................................. 14 1.2.3 语言的互操作性 .................................................................................................................. 14 1.3 中间语言 ........................................................................................................................................ 15 1.3.1 面向对象和接口的支持 ...................................................................................................... 16 1.3.2 相异值类型和引用类型 ...................................................................................................... 16 1.3.3 强数据类型 .......................................................................................................................... 16 1.3.4 通过异常处理错误 .............................................................................................................. 21 1.3.5 特性的使用 .......................................................................................................................... 21 1.4 程序集 ............................................................................................................................................ 22 1.4.1 私有程序集 .......................................................................................................................... 22 1.4.2 共享程序集 .......................................................................................................................... 22 1.4.3 反射 ..................................................................................................................................... 23 1.5 .NET Framework 类 ........................................................................................................................ 23 1.6 命名空间 ........................................................................................................................................ 24 1.7 用C#创建.NET 应用程序 .............................................................................................................. 24 1.7.1 创建ASP.NET 应用程序 .................................................................................................... 24 1.7.2 创建Windows 窗体 ............................................................................................................. 26 1.7.3 使用Windows Presentation Foundation(WPF) ................................................................... 26 1.7.4 Windows 控件 ...................................................................................................................... 26 1.7.5 Windows 服务 ...................................................................................................................... 26 1.7.6 Windows Communication Foundation(WCF) ...................................................................... 26 1.8 C#在.NET 企业体系结构中的作用 ............................................................................................... 27 1.9 本章小结 ........................................................................................................................................ 27 第2 章 C# 基础 ......................................................................................................................................... 29 2.1 引言 ................................................................................................................................................ 29 2.2 第一个C#程序 ............................................................................................................................... 29 2.2.1 代码 ..................................................................................................................................... 30 2.2.2 编译并运行程序 .................................................................................................................. 30 2.2.3 详细介绍 .............................................................................................................................. 30 2.3 变量 ................................................................................................................................................ 32 2.3.1 变量的初始化 ...................................................................................................................... 32 2.3.2 类型推断 .............................................................................................................................. 33 2.3.3 变量的作用域 ...................................................................................................................... 34 2.3.4 常量 ..................................................................................................................................... 36 2.4 预定义数据类型 ............................................................................................................................. 37 2.4.1 值类型和引用类型 .............................................................................................................. 37 2.4.2 CTS 类型 .............................................................................................................................. 38 2.4.3 预定义的值类型 .................................................................................................................. 38 2.4.4 预定义的引用类型 .............................................................................................................. 40 2.5 流控制 ............................................................................................................................................ 42 2.5.1 条件语句 .............................................................................................................................. 42 2.5.2 循环 ..................................................................................................................................... 46 2 / 826 2.5.3 跳转语句 .............................................................................................................................. 49 2.6 枚举 ................................................................................................................................................ 49 2.7 数组 ................................................................................................................................................ 51 2.8 命名空间 ........................................................................................................................................ 52 2.8.1 using 语句 ............................................................................................................................ 53 2.8.2 命名空间的别名 .................................................................................................................. 53 2.9 Main()方法 ..................................................................................................................................... 54 2.9.1 多个Main()方法 .................................................................................................................. 54 2.9.2 给Main()方法传送参数 ...................................................................................................... 55 2.10 有关编译C#文件的更多内容 ..................................................................................................... 56 2.11 控制台I/O .................................................................................................................................... 57 2.12 使用注释 ...................................................................................................................................... 59 2.12.1 源文件中的内部注释 ........................................................................................................ 59 2.12.2 XML 文档说明 .................................................................................................................. 59 2.13 C#预处理器指令 .......................................................................................................................... 61 2.13.1 #define 和 #undef .............................................................................................................. 61 2.13.2 #if, #elif, #else 和#endif ..................................................................................................... 62 2.13.3 #warning 和 # error ........................................................................................................... 62 2.13.4 #region 和#endregion ......................................................................................................... 63 2.13.5 #line ................................................................................................................................... 63 2.13.6 #pragma .............................................................................................................................. 63 2.14 C#编程规则 ................................................................................................................................. 64 2.14.1 用于标识符的规则 ............................................................................................................ 64 2.14.2 用法约定 ............................................................................................................................ 64 2.15 本章小结 ...................................................................................................................................... 69 第3 章 对象和类型 .................................................................................................................................... 70 3.1 类和结构 ........................................................................................................................................ 70 3.2 类成员 ............................................................................................................................................ 71 3.2.1 数据成员 .............................................................................................................................. 71 3.2.2 函数成员 .............................................................................................................................. 72 3.2.3 只读字段 .............................................................................................................................. 83 3.3 匿名类型 ........................................................................................................................................ 84 3.4 结构 ................................................................................................................................................ 84 3.4.1 结构是值类型 ...................................................................................................................... 86 3.4.2 结构和继承 .......................................................................................................................... 86 3.4.3 结构的构造函数 .................................................................................................................. 87 3.5 部分类 ............................................................................................................................................ 87 3.6 静态类 ............................................................................................................................................ 88 3.7 Object 类 ........................................................................................................................................ 88 3.7.1 System.Object 方法 .............................................................................................................. 88 3.7.2 ToString()方法 ..................................................................................................................... 89 3.8 扩展方法 ........................................................................................................................................ 90 3.9 本章小结 ........................................................................................................................................ 91 第4 章 继 承 ........................................................................................................................................... 91 4.1 继承的类型 .................................................................................................................................... 91 4.1.1 实现继承和接口继承 .......................................................................................................... 91 3 / 826 4.1.2 多重继承 .............................................................................................................................. 92 4.1.3 结构和类 .............................................................................................................................. 92 4.2 实现继承 ........................................................................................................................................ 92 4.2.1 虚方法 ................................................................................................................................. 93 4.2.2 隐藏方法 .............................................................................................................................. 94 4.2.3 调用函数的基类版本 .......................................................................................................... 95 4.2.4 抽象类和抽象函数 .............................................................................................................. 96 4.2.5 密封类和密封方法 .............................................................................................................. 96 4.2.6 派生类的构造函数 .............................................................................................................. 97 4.3 修饰符 .......................................................................................................................................... 101 4.3.1 可见性修饰符 .................................................................................................................... 101 4.3.2 其他修饰符 ........................................................................................................................ 102 4.4 接口 .............................................................................................................................................. 102 4.4.1 定义和实现接口 ................................................................................................................ 103 4.4.2 派生的接口 ........................................................................................................................ 106 4.5 本章小结 ...................................................................................................................................... 108 第5 章 数 组 ......................................................................................................................................... 109 5.1 简单数组 ...................................................................................................................................... 109 5.1.1 数组的声明 ........................................................................................................................ 109 5.1.2 数组的初始化 .................................................................................................................... 109 5.1.3 访问数组元素 .................................................................................................................... 110 5.1.4 使用引用类型 .................................................................................................................... 110 5.2 多维数组 ...................................................................................................................................... 111 5.3 锯齿数组 ...................................................................................................................................... 112 5.4 Array 类 ........................................................................................................................................ 113 5.4.1 属性 ................................................................................................................................... 113 5.4.2 创建数组 ............................................................................................................................ 113 5.4.3 复制数组 ............................................................................................................................ 114 5.4.4 排序 ................................................................................................................................... 115 5.5 数组和集合接口 ........................................................................................................................... 118 5.5.1 IEumerable 接口 ................................................................................................................ 118 5.5.2 ICollection 接口 ................................................................................................................. 118 5.5.3 IList 接口 ........................................................................................................................... 118 5.6 枚举 .............................................................................................................................................. 119 5.6.1 IEnumerator 接口 ............................................................................................................... 119 5.6.2 foreach 语句 ....................................................................................................................... 119 5.6.3 yield 语句 ........................................................................................................................... 119 5.7 本章小结 ...................................................................................................................................... 124 第6 章 运算符和类型强制转换 ............................................................................................................... 124 6.1 运算符 .......................................................................................................................................... 124 6.1.1 运算符的简化操作 ............................................................................................................ 126 6.1.2 条件运算符 ........................................................................................................................ 126 6.1.3 checked 和unchecked 运算符 ........................................................................................... 127 6.1.4 is 运算符 ............................................................................................................................ 128 6.1.5 as 运算符 ............................................................................................................................ 128 6.1.6 sizeof 运算符 ..................................................................................................................... 128 4 / 826 6.1.7 typeof 运算符 ..................................................................................................................... 128 6.1.8 可空类型和运算符 ............................................................................................................ 128 6.1.9 空接合运算符 .................................................................................................................... 129 6.1.10 运算符的优先级 .............................................................................................................. 129 6.2 类型的安全性 ............................................................................................................................... 130 6.2.1 类型转换 ............................................................................................................................ 130 6.2.2 装箱和拆箱 ........................................................................................................................ 133 6.3 对象的相等比较 ........................................................................................................................... 133 6.3.1 引用类型的相等比较 ........................................................................................................ 134 6.3.2 值类型的相等比较 ............................................................................................................ 134 6.4 运算符重载 .................................................................................................................................. 135 6.4.1 运算符的工作方式 ............................................................................................................ 136 6.4.2 运算符重载的示例:Vector 结构 ..................................................................................... 136 6.5 用户定义的数据类型转换 ........................................................................................................... 142 6.5.1 执行用户定义的类型转换 ................................................................................................ 143 6.5.2 多重数据类型转换 ............................................................................................................ 148 6.6 本章小结 ...................................................................................................................................... 151 第7 章 委托和事件 .................................................................................................................................. 152 7.1 委托 .............................................................................................................................................. 152 7.1.1 在C#中声明委托 .............................................................................................................. 153 7.1.2 在C#中使用委托 .............................................................................................................. 153 7.1.3 简单的委托示例 ................................................................................................................ 156 7.1.4 BubbleSorter 示例 .............................................................................................................. 158 7.1.5 多播委托 ............................................................................................................................ 160 7.1.6 匿名方法 ............................................................................................................................ 164 7.1.7 λ 表达式 ............................................................................................................................ 165 7.1.8 协变和抗变 ........................................................................................................................ 166 7.2 事件 .............................................................................................................................................. 167 7.2.1 从接收器的角度讨论事件 ................................................................................................ 168 7.2.2 生成事件 ............................................................................................................................ 170 7.3 本章小结 ...................................................................................................................................... 173 第8 章 字符串和正则表达式 ................................................................................................................... 174 8.1 System.String 类 ........................................................................................................................... 175 8.1.1 创建字符串 ........................................................................................................................ 176 8.1.2 StringBuilder 成员 ............................................................................................................. 178 8.1.3 格式化字符串 .................................................................................................................... 179 8.2 正则表达式 .................................................................................................................................. 183 8.2.1 正则表达式概述 ................................................................................................................ 184 8.2.2 RegularExpressionsPlayaround 示例 ................................................................................. 184 8.2.3 显示结果 ............................................................................................................................ 186 8.2.4 匹配、组合和捕获 ............................................................................................................ 188 8.3 本章小结 ...................................................................................................................................... 189 第9 章 泛 型 ......................................................................................................................................... 190 9.1 概述 .............................................................................................................................................. 191 9.1.1 性能 ................................................................................................................................... 191 9.1.2 类型安全 ............................................................................................................................ 192 5 / 826 9.1.3 二进制代码的重用 ............................................................................................................ 192 9.1.4 代码的扩展 ........................................................................................................................ 193 9.1.5 命名约定 ............................................................................................................................ 193 9.2 创建泛型类 .................................................................................................................................. 193 9.3 泛型类的特性 ............................................................................................................................... 197 9.3.1 默认值 ............................................................................................................................... 198 9.3.2 约束 ................................................................................................................................... 198 9.3.3 继承 ................................................................................................................................... 200 9.3.4 静态成员 ............................................................................................................................ 201 9.4 泛型接口 ...................................................................................................................................... 201 9.5 泛型方法 ...................................................................................................................................... 202 9.6 泛型委托 ...................................................................................................................................... 204 9.6.1 执行委托调用的方法 ........................................................................................................ 205 9.6.2 对Array 类使用泛型委托 ................................................................................................. 206 9.7 Framework 的其他泛型类型 ........................................................................................................ 208 9.7.1 结构Nullable .............................................................................................................. 208 9.7.2 EventHandler .............................................................................................. 210 9.8 本章小结 ...................................................................................................................................... 210 第10 章 集合 ............................................................................................................................................ 211 10.1 集合接口和类型 ......................................................................................................................... 211 10.2 列表 ............................................................................................................................................ 214 10.2.1 创建列表 .......................................................................................................................... 215 10.2.2 只读集合 .......................................................................................................................... 223 10.3 队列 ............................................................................................................................................ 223 10.4 栈 ................................................................................................................................................ 227 10.5 链表 ............................................................................................................................................ 228 10.6 有序表 ........................................................................................................................................ 233 10.7 字典 ............................................................................................................................................ 235 10.7.1 键的类型 .......................................................................................................................... 235 10.7.2 字典示例 .......................................................................................................................... 236 10.7.3 Lookup 类 ......................................................................................................................... 239 10.7.4 其他字典类 ...................................................................................................................... 240 10.8 HashSet ....................................................................................................................................... 241 10.9 位数组 ........................................................................................................................................ 244 10.9.1 BitArray ............................................................................................................................ 244 10.9.2 BitVector32 ....................................................................................................................... 246 10.10 性能 .......................................................................................................................................... 249 10.11 本章小结 .................................................................................................................................. 250 第11 章 Language Integrated Query ......................................................................................................... 251 11.1 LINQ 概述 ........................................................................................................................... 251 11.1.1 使用List的查询 .......................................................................................................... 252 11.1.2 扩展方法 ............................................................................................................................ 262 11.1.3 λ 表达式 ............................................................................................................................ 265 11.1.4 LINQ 查询 ........................................................................................................................ 266 11.1.5 推迟查询的执行 ............................................................................................................... 267 11.2 标准的查询操作符 ............................................................................................................. 269 6 / 826 11.2.1 过滤 ............................................................................................................................... 271 11.2.2 用索引来过滤 ............................................................................................................... 272 11.2.3 类型过滤 ....................................................................................................................... 272 11.2.4 复合的from 子句 ......................................................................................................... 273 11.2.5 排序 ............................................................................................................................... 274 11.2.6 分组 ............................................................................................................................... 276 11.2.7 对嵌套的对象分组 ....................................................................................................... 278 11.2.8 连接 ............................................................................................................................... 279 11.2.9 设置操作 ....................................................................................................................... 282 11.2.10 分区 ............................................................................................................................. 283 11.2.11 合计操作符 ................................................................................................................ 285 11.2.12 转换 ............................................................................................................................... 287 11.2.13 生成操作符 ................................................................................................................ 289 11.3 表达式树 ............................................................................................................................. 290 11.4 LINQ 提供程序 .................................................................................................................. 295 11.5 本章小结 ............................................................................................................................. 295 第12 章 内存管理和指针 ......................................................................................................................... 296 12.1 后台内存管理 .............................................................................................................................. 296 12.1.1 值数据类型 ...................................................................................................................... 297 12.1.2 引用数据类型 .................................................................................................................. 298 12.1.3 垃圾收集 .......................................................................................................................... 300 12.2 释放未托管的资源 ...................................................................................................................... 300 12.2.1 析构函数 .......................................................................................................................... 301 12.2.2 IDisposable 接口 ............................................................................................................ 302 12.2.3 实现IDisposable 接口和析构函数 .............................................................................. 303 12.3 不安全的代码 .............................................................................................................................. 305 12.3.1 指针 ................................................................................................................................. 305 12.3.2 指针示例:PointerPlayaround ..................................................................................... 312 12.3.3 使用指针优化性能 .......................................................................................................... 317 12.4 本章小结 ..................................................................................................................................... 319 第13 章 反 射 .......................................................................................................................................... 320 13.1 定制特性 ..................................................................................................................................... 321 13.1.1 编写定制特性 .................................................................................................................. 321 13.1.2 定制特性示例:WhatsNewAttributes .......................................................................... 324 13.2 反射 ............................................................................................................................................. 327 13.2.1 System.Type 类 ............................................................................................................. 327 13.2.2 TypeView 示例 ............................................................................................................... 329 13.2.3 Assembly 类 ................................................................................................................... 331 13.2.4 完成WhatsNewAttributes 示例 ................................................................................... 332 13.3 本章小结 ............................................................................................................................. 336 第14 章 错误和异常 ................................................................................................................................ 337 14.1 错误和异常处理 .......................................................................................................................... 337 14.1.1 异常类 .............................................................................................................................. 337 14.1.2 捕获异常 .......................................................................................................................... 338 14.1.3 用户定义的异常类 .......................................................................................................... 347 14.2 本章小结 ..................................................................................................................................... 354 7 / 826 第15 章 Visual Studio 2008 ...................................................................................................................... 354 15.1 使用Visual Studio 2005 .............................................................................................................. 354 15.1.1 创建项目 .......................................................................................................................... 356 15.1.2 解决方案和项目 .............................................................................................................. 360 15.1.3 Windows 应用程序代码 ................................................................................................. 362 15.1.4 读取Visual Studio 6 项目 ............................................................................................ 362 15.1.5 项目的浏览和编码 .......................................................................................................... 363 15.1.6 生成项目 .......................................................................................................................... 368 15.1.7 调试 ................................................................................................................................. 370 15.2 修订功能 ..................................................................................................................................... 372 15.3 Visual Studio 2005 for .NET Framework 3.0 ............................................................................... 373 15.3.1 .NET 3.0 的项目类型 ..................................................................................................... 374 15.3.2 在Visual Studio 中建立WPF 应用程序 .................................................................... 375 15.3.3 在Visual Studio 中建立WF 应用程序 ....................................................................... 375 15.4 本章小结 ..................................................................................................................................... 376 第16 章 部 署 .......................................................................................................................................... 376 16.1 部署的设计 ................................................................................................................................. 377 16.2 部署选项 ..................................................................................................................................... 377 16.2.1 Xcopy 实用工具 .............................................................................................................. 377 16.2.2 Copy Web 工具 .............................................................................................................. 377 16.2.3 发布Web 站点 ............................................................................................................... 377 16.2.4 部署项目 .......................................................................................................................... 377 16.3 部署的要求 ................................................................................................................................. 378 16.4 部署.NET 运行库 ....................................................................................................................... 378 16.5 简单的部署 ................................................................................................................................. 379 16.5.1 Xcopy 部署 ...................................................................................................................... 379 16.5.2 Xcopy 和Web 应用程序 ............................................................................................... 380 16.5.3 Copy Web 工具 .............................................................................................................. 380 16.5.4 发布Web 站点 ............................................................................................................... 380 16.6 Installer 项目 ............................................................................................................................... 380 16.6.1 Windows Installer ........................................................................................................... 381 16.6.2 创建安装程序 .................................................................................................................. 381 16.7 ClickOnce ..................................................................................................................................... 388 16.7.1 ClickOnce 操作 ............................................................................................................... 388 16.7.2 发布应用程序 .................................................................................................................. 389 16.7.3 ClickOnce 设置 ............................................................................................................... 389 16.7.4 应用程序缓存 .................................................................................................................. 389 16.7.5 安全性 .............................................................................................................................. 390 16.7.6 高级选项 .......................................................................................................................... 390 16.8 本章小结 ..................................................................................................................................... 393 第31 章Windows 窗 体 ............................................................................................................................. 394 31.1 创建Windows 窗体应用程序 .................................................................................................... 395 31.2 Control 类 ................................................................................................................................... 401 31.2.1 大小和位置 ...................................................................................................................... 401 31.2.2 外观 ................................................................................................................................. 402 31.2.3 用户交互操作 .................................................................................................................. 402 8 / 826 31.2.4 Windows 功能 .................................................................................................................. 404 31.2.5 杂项功能 .......................................................................................................................... 404 31.3 标准控件和组件 ......................................................................................................................... 404 31.3.1 Button 控件 ...................................................................................................................... 405 31.3.2 CheckBox 控件 ................................................................................................................ 406 31.3.3 RadioButton 控件 ............................................................................................................. 407 31.3.4 ComboBox 控件、ListBox 控件和CheckedListBox 控件 ............................................ 407 31.3.5 DateTimePicker 控件 ....................................................................................................... 410 31.3.6 ErrorProvider 组件 ........................................................................................................... 410 31.3.7 HelpProvider 组件 ............................................................................................................ 411 31.3.8 ImageList 组件 ................................................................................................................. 412 31.3.9 Label 控件 ........................................................................................................................ 412 31.3.10 ListView 控件 ................................................................................................................ 413 31.3.11 PictureBox 控件 ............................................................................................................. 415 31.3.12 ProgressBar 控件............................................................................................................ 415 31.3.13 TextBox 控件、RichTextBox 控件与MaskedTextBox 控件 ...................................... 415 31.3.14 Panel 控件 ...................................................................................................................... 417 31.3.15 FlowLayoutPanel 和TableLayoutPanel 控件 ................................................................ 417 31.3.16 SplitContainer 控件 ........................................................................................................ 418 31.3.17 TabControl 控件和TabPages 控件 ............................................................................... 418 31.3.18 ToolStrip 控件 ................................................................................................................ 419 31.3.19 MenuStrip 控件 .............................................................................................................. 422 31.3.20 ContextMenuStrip 控件 ................................................................................................. 422 31.3.21 ToolStripMenuItem 控件 ............................................................................................... 422 31.3.22 ToolStripManager 类 ...................................................................................................... 423 31.3.23 ToolStripContainer 控件 ................................................................................................ 423 31.4 窗体 ............................................................................................................................................ 423 31.4.1 Form 类 ............................................................................................................................ 423 31.4.2 多文档界面 ...................................................................................................................... 429 31.4.3 定制控件 .......................................................................................................................... 429 31.5 本章小结 .................................................................................................................................... 442 第32 章数 据 绑 定 .................................................................................................................................. 443 32.1 DataGridView 控件 .................................................................................................................... 443 32.1.1 显示列表数据 .................................................................................................................. 444 32.1.2 数据源 .............................................................................................................................. 445 32.3 数据绑定 .................................................................................................................................... 455 32.3.1 简单的绑定 ...................................................................................................................... 455 32.3.2 数据绑定对象 .................................................................................................................. 456 32.4 Visual Studio 和数据访问 .......................................................................................................... 459 32.4.1 创建一个连接 .................................................................................................................. 460 32.4.2 选择数据 .......................................................................................................................... 461 32.4.3 更新数据源 ...................................................................................................................... 462 32.4.4 其他常见的要求 .............................................................................................................. 462 32.5 本章小结 .................................................................................................................................... 471 第33 章使用GDI+绘图 ............................................................................................................................... 471 33.1 理解绘图规则 ............................................................................................................................. 472 9 / 826 33.1.1 GDI 和GDI+ .................................................................................................................... 472 33.1.2 绘制图形 .......................................................................................................................... 474 33.1.3 使用OnPaint()绘制图形 ................................................................................................. 476 33.1.4 使用剪切区域 .................................................................................................................. 478 33.2 测量坐标和区域 ......................................................................................................................... 479 33.2.1 Point 和PointF 结构 ........................................................................................................ 480 33.2.2 Size 和SizeF 结构 ........................................................................................................... 481 33.2.3 Rectangle 和RectangleF 结构 ......................................................................................... 482 33.2.4 Region .............................................................................................................................. 483 33.3 调试须知 .................................................................................................................................... 483 33.4 绘制可滚动的窗口 ..................................................................................................................... 484 33.5 世界、页面和设备坐标 ............................................................................................................. 489 33.6 颜色 ............................................................................................................................................ 490 33.6.1 红绿蓝(RGB)值 ............................................................................................................... 490 33.6.2 命名的颜色 ...................................................................................................................... 491 33.6.3 图形显示模式和安全的调色板 ...................................................................................... 491 33.6.4 安全调色板 ...................................................................................................................... 492 33.7 画笔和钢笔 ................................................................................................................................ 492 33.7.1 画笔 ................................................................................................................................. 493 33.7.2 钢笔 ................................................................................................................................. 494 33.8 绘制图形和线条 ......................................................................................................................... 494 33.9 显示图像 .................................................................................................................................... 496 33.10 处理图像时的问题 ................................................................................................................... 499 33.11 绘制文本 .................................................................................................................................. 499 33.12 简单的文本示例 ....................................................................................................................... 500 33.13 字体和字体系列 ....................................................................................................................... 501 33.14 示例:枚举字体系列 ............................................................................................................... 503 33.15 编辑文本文档:CapsEditor 示例 ............................................................................................ 505 33.15.1 Invalidate()方法 ............................................................................................................. 509 33.15.2 计算项和文档的大小 .................................................................................................... 510 33.15.3 OnPaint() ........................................................................................................................ 512 33.15.4 坐标转换 ........................................................................................................................ 513 33.15.5 响应用户的输入 ............................................................................................................ 515 33.16 打印 .......................................................................................................................................... 518 33.17 本章小结 .................................................................................................................................. 523 第34 章Windows Presentation Foundation ................................................................................................. 524 34.1 概述 ............................................................................................................................................ 525 34.1.1 XAML .............................................................................................................................. 525 34.1.2 设计人员和开发人员的合作 .......................................................................................... 529 34.1.3 类层次结构 ...................................................................................................................... 530 31.1.4 命名空间 .......................................................................................................................... 532 34.2 形状 ............................................................................................................................................ 533 34.3 变换 ............................................................................................................................................ 537 34.4 笔刷 ............................................................................................................................................ 537 34.4.1 SolidColorBrush ............................................................................................................... 537 34.4.2 LinearGradientBrush ........................................................................................................ 538 10 / 826 34.4.3 RadialGradientBrush ........................................................................................................ 539 34.4.4 DrawingBrush .................................................................................................................. 539 34.4.5 ImageBrush ...................................................................................................................... 540 34.4.6 VisualBrush ...................................................................................................................... 540 34.5 控件 ............................................................................................................................................ 542 34.5.1 简单控件 .......................................................................................................................... 542 34.5.2 内容控件 .......................................................................................................................... 543 34.5.3 有标题的内容控件 .......................................................................................................... 544 34.5.4 项控件 .............................................................................................................................. 545 34.5.5 带标题的项控件 .............................................................................................................. 545 34.6 布局 ............................................................................................................................................ 546 34.6.1 StackPanel ........................................................................................................................ 546 34.6.2 WrapPanel ........................................................................................................................ 547 34.6.3 Canvas .............................................................................................................................. 547 34.6.4 DockPanel ........................................................................................................................ 548 34.6.5 Grid .................................................................................................................................. 551 34.7 事件处理 .................................................................................................................................... 553 34.8 样式、模板和资源 ..................................................................................................................... 554 34.8.1 样式 ................................................................................................................................. 554 34.8.2 资源 ................................................................................................................................. 555 34.8.3 创建列表框的样式 .......................................................................................................... 572 34.9 本章小结 .................................................................................................................................... 580 第35 章高 级 WPF .................................................................................................................................... 581 35.1 数据绑定 .................................................................................................................................... 581 35.1.1 概述 ................................................................................................................................. 581 35.1.2 用XAML 绑定 ................................................................................................................ 582 35.1.3 简单对象的绑定 .............................................................................................................. 584 35.1.4 对象数据提供程序 .......................................................................................................... 587 35.1.5 列表绑定 .......................................................................................................................... 588 35.1.6 绑定到XML 上 ............................................................................................................... 599 35.1.7 绑定的验证 ..........................................................................................

用户评论
请输入评论内容
评分:
暂无评论