当前位置:首页 > 工业技术
C#经典实例  第2版
C#经典实例  第2版

C#经典实例 第2版PDF电子书下载

工业技术

  • 电子书积分:28 积分如何计算积分?
  • 作 者:(美)希亚德,泰勒特著
  • 出 版 社:北京:中国电力出版社
  • 出版年份:2007
  • ISBN:9787508351520
  • 页数:1128 页
图书介绍:本书在第一版的基础上针对C# 2.0和.NET 2.0做了全面修订,汇集了最初学习C#以及之后继续使用C#时遇到的编程问题。对于C#程序员经常遇到的300多个最常见和不那么常见的任务,本书涵盖了解决这些问题所需的全部技巧。从使用正则表达式到处理泛型类型,再到如何让代码在其自己的应用域中运行,通过本书的介绍,你会更深入地了解C#语言,在基于.NET 2.0的Windows和ASP.NET Web应用这个新领域中更加游刃有余。与O’Reilly的其他书一样,本书的每个技巧都做了精心组织,以便你快速了解问题,学会如何加以解决,并了解可能存在的问题或限制。对于刚接触C#的程序员来说,本书绝对是你起步并不断提高技艺的得力工具。如果你是一个有经验的程序员,会发现利用本书能很方便地查看语法和常见用例;随着企业的发展,你还会遇到更棘手的问题,本书将是解决这些问题的一个绝好的资源。
《C#经典实例 第2版》目录
标签:实例 经典

前言 1

第1章 数字与枚举 11

1.0 引言 11

1.1 确定分数与浮点数值之间的近似相等性 13

1.2 度转换为弧度 15

1.3 弧度转换为度 15

1.4 对各种数据类型使用反码操作符 16

1.5 测试奇偶值 17

1.6 得到一个数的高字或低字 19

1.7 将其他进制的数转换为十进制数 20

1.8 确定一个串是否是一个合法数字 21

1.9 浮点数值取整 22

1.10 选择取整算法 23

1.11 摄氏温度转换为华氏温度 24

1.12 华氏温度转换为摄氏温度 24

1.13 安全地执行窄化数值强制转换 25

1.14 得出直角三角形任意三边的边长 27

1.15 得出直角三角形的角度 29

1.16 将枚举值显示为一个串 30

1.17 将纯文本转换为一个等价的枚举值 32

1.18 测试一个合法的枚举值 34

1.19 测试是否为合法的标志枚举 36

1.20 在位掩码中使用枚举成员 38

1.21 确定是否设置了一个或多个枚举标志 40

1.23 确定一个Decimal或Double的整数部分 44

第2章 串和字符 45

2.0 引言 45

2.1 确定一个char包含何种字符 45

2.2 确定一个字符是否在指定范围内 49

2.3 比较两个字符时控制大小写敏感性 50

2.4 找出字符在串中的所有出现 52

2.5 找出一个串在另一个串中的所有出现的位置 54

2.6 实现一个简单的词法分析器解构一个串 59

2.7 比较两个串时控制大小写敏感性 61

2.8 将一个串与第二个串的开头或结尾进行比较 62

2.9 在串中插入文本 63

2.10 删除或替换串中的字符 64

2.11 将二进制数据编码为Base64 67

2.12 对Base64编码的二进制数据解码 68

2.13 将作为Byte[]返回的一个串转换回String 69

2.14 将一个String传递给只接受byte[]的方法 70

2.15 将串转换为其他类型 72

2.16 格式化串中的数据 76

2.17 创建一个定界串 79

2.18 从定界串抽取项 80

2.19 设置StringBuilder所能包含的最大字符数 81

2.20 迭代处理串中的各个字符 83

2.21 改善串比较性能 84

2.22 改善StringBuilder的性能 87

2.23 去掉串开头和/或结尾的字符 90

2.24 测试一个串是否为Null或空串 91

2.25 追加一行 92

2.26 大块数据的编码 93

第3章 类和结构 99

3.0 引言 99

3.1 创建联合类型的结构 101

3.2 允许一个类型将自身表示为String 103

3.3 将一个对象的串表示转换为实际对象 109

3.4 利用抽象基类实现多态 113

3.5 使类型可排序 119

3.6 使类型可搜索 124

3.7 间接重载+=、-=、/=和*=操作符 129

3.8 间接重载&&、||和?:操作符 132

3.9 打开或关闭位 135

3.10 建立无错表达式 138

3.11 最小化(减少)布尔逻辑 141

3.12 以独立于语言的方式实现简单类型间的转换 145

3.13 确定何时使用强制转换操作符、as操作符或is操作符 152

3.14 用as操作符强制转换 153

3.15 用is操作符确定一个变量的类型 156

3.16 用接口实现多态 159

3.17 在多个对象类型上调用相同的方法 162

3.18 使用接口增加通知回调 165

3.19 使用多个入口点实现应用版本化 173

3.20 避免创建仅部分初始化的对象 175

3.21 从一个方法返回多项 177

3.22 解析命令行参数 179

3.23 改进类以与COM互操作 188

3.24 在运行时初始化一个常量字段 193

3.25 编写与所有托管语言兼容的代码 196

3.26 构建可复制类 197

3.27 确保对象撤销 201

3.28 通过托管代码释放COM对象 203

3.29 创建对象缓存 204

3.30 回滚对象修改 213

3.31 非托管资源的撤销 221

3.32 确定装箱和拆箱发生在何处 228

第4章 泛型 231

4.0 引言 231

4.1 决定何时及何处使用泛型 231

4.2 了解泛型类型 232

4.3 得到泛型类型的类型 240

4.4 将ArrayList替换为其相应的泛型类型 241

4.5 将Stack和Queue替换为相应的泛型类型 245

4.6 实现一个链表 250

4.7 创建可以初始化为Null的值类型 253

4.8 逆转有序表的内容 255

4.9 建立泛型只读集合 283

4.10 将Hashtable替换为其相应的泛型类型 284

4.11 对泛型Dictionary类型使用foreach 288

4.12 约束类型参数 289

4.13 将泛型变量初始化为其默认值 292

第5章 集合 294

5.0 引言 294

5.1 交换数组中的两个元素 296

5.2 快速逆置数组 297

5.3 逆置二维数组 300

5.4 逆置多重数组 302

5.5 编写一个更灵活的StackTrace类 304

5.6 确定一项出现在List〈T〉中的次数 309

5.7 获取一个特定项在List〈T〉中的所有实例 312

5.8 从数组插入和删除项 316

5.9 保持List〈T〉有序 318

5.10 对字典的键和/或值排序 321

5.11 创建一个有最大值和最小值边界的字典 324

5.12 将数组数据显示为定界串 327

5.13 在数组中存储列表的快照 328

5.14 在应用会话之间持久存储集合 329

5.15 测试Array或List〈T〉中的每一个元素 331

5.16 在Array或List〈T〉中的每个元素上执行一个动作 333

5.17 创建一个只读Array或List〈T〉 335

第6章 迭代器和部分类型 338

6.0 引言 338

6.1 在类中实现嵌套foreach功能 339

6.2 创建定制枚举器 344

6.3 在泛型类型上创建一个迭代器 348

6.4 在非泛型类型上创建一个迭代器 350

6.5 创建接受参数的迭代器 352

6.6 在一个类型上增加多个迭代器 354

6.7 将迭代器实现为重载操作符 358

6.8 迫使迭代器停止迭代 365

6.9 处理Finally块和迭代器 366

6.10 组织接口实现 370

6.11 生成不再在主代码路径中的代码 375

第7章 异常处理 378

7.0 引言 378

7.1 验证关键参数 385

7.2 了解何时捕获和重新抛出异常 387

7.3 明确异常及其用法 388

7.4 单独地处理派生异常 392

7.5 使用Finally块时确保异常不丢失 395

7.6 处理通过反射调用的方法所抛出的异常 398

7.7 调试加载程序集时的问题 401

7.8 托管异常和HRESULT之间的映射 402

7.9 处理用户自定义的HRESULT 407

7.10 避免未处理的异常 408

7.11 获得异常信息 410

7.12 快速找出问题根源 414

7.13 创建一个新的异常类型 415

7.14 得到栈轨迹 428

7.15 异常初次出现时中断 430

7.16 避免恶毒的TypeInitializationException 433

7.17 处理从异步委托抛出的异常 437

7.18 通过Exception.Data为异常提供所需的额外信息 438

7.19 使用可视化工具以一种新方式查看异常 440

7.20 在WinForms应用中处理未处理的异常 448

第8章 诊断 451

8.0 引言 451

8.1 在生产代码中控制跟踪输出 451

8.2 对调试/跟踪输出提供细粒度控制 455

8.3 创建你自己的定制开关类 458

8.4 有条件地编译代码块 463

8.5 确定一个进程是否停止响应 465

8.6 在应用中使用事件日志 467

8.7 改变一个定制事件日志的最大大小 474

8.8 搜索事件日志条目 476

8.9 监视事件日志中的特定条目 479

8.10 查找一个特定事件日志的所有源 481

8.11 实现一个简单的性能计数器 483

8.12 实现需要基计数器的性能计数器 487

8.13 启用和禁用复杂的跟踪代码 490

8.14 捕获进程的标准输出 493

8.15 为类创建定制调试显示 496

8.16 确定当前AppDomain设置信息 498

8.17 通过编程提高进程的优先级 500

8.18 查看运行时环境,确定能做何处理 502

第9章 委托、事件和匿名方法 504

9.0 引言 504

9.1 控制组播委托中是否触发和何时触发一个委托 505

9.2 从组播委托中的各个委托得到返回值 508

9.3 单独地处理组播委托中各委托的异常 510

9.4 将同步委托调用转换为异步委托调用 514

9.5 包装密封类来增加事件 517

9.6 向事件来回传递特殊化参数 524

9.7 一种高级接口搜索机制 529

9.8 一个高级成员搜索机制 533

9.9 观察对一个Hashtable的增加和修改 538

9.10 使用Windows键盘钩 546

9.11 跟踪和响应鼠标 553

9.12 使用匿名方法 554

9.13 简洁地建立事件处理器 558

9.14 在匿名方法中使用不同参数修饰符 562

9.15 使用C#中的闭包 566

9.16 使用算子在一个列表上执行多个操作 570

第10章 正则表达式 574

10.0 引言 574

10.1 枚举列出匹配 575

10.2 从MatchCollection抽取组 578

10.3 验证正则表达式的语法 581

10.4 快速地找出串中最后一个匹配 583

10.5 替换串中的字符或单词 584

10.6 增强基本的串替换功能 587

10.7 实现一个更好的词法分析器 590

10.8 编译正则表达式 592

10.9 统计文本行 594

10.10 返回找到匹配的整行 597

10.11 找到一个匹配的特定出现 601

10.12 使用公共模式 603

10.13 为正则表达式增加文档注释 606

10.14 使用内置正则表达式解析ASP.NET页面 607

第11章 数据结构和算法 614

11.0 引言 614

11.1 为一个数据类型创建散列码 614

11.2 创建优先队列 622

11.3 创建双向队列 631

11.4 确定字符或串在哪里不平衡 638

11.5 创建一对多映射(MultiMap) 643

11.6 创建二叉树 652

11.7 创建n叉树 666

11.8 创建一个Set对象 679

第12章 文件系统I/O 693

12.0 引言 693

12.1 创建、复制、移动或删除文件 694

12.2 管理文件属性 697

12.3 重命名文件 700

12.4 确定一个文件是否存在 701

12.5 选择一个打开文件或流的方法来完成读和/或写 701

12.6 随机地访问部分文件 709

12.7 输出一个平台独立的EOL字符 713

12.8 创建和读写文件 715

12.9 确定一个目录是否存在 723

12.10 创建、移动或删除一个目录 723

12.11 管理目录属性 725

12.12 重命名目录 728

12.13 使用通配符搜索目录或文件 730

12.14 得到目录树 734

12.15 解析路径 736

12.16 解析环境变量中的路径 738

12.17 验证路径 739

12.18 在应用中使用临时文件 744

12.19 只用文件句柄打开文件流 745

12.20 一次写多个输出文件 747

12.21 启动控制台工具并与之交互 750

12.22 锁定文件中的部分 752

12.23 监视文件系统中对一个或多个或目录的特定修改 755

12.24 等待文件系统中发生某个动作 761

12.25 比较两个可执行模块的版本信息 763

12.26 查询一个系统上所有驱动器的信息 767

12.27 加密/解密一个现有的文件 769

12.28 压缩和解压文件 770

第13章 反射 774

13.0 引言 774

13.1 列出所引用的程序集 774

13.2 列出导出的类型 777

13.3 查找被覆盖的方法 778

13.4 查找一个程序集中的成员 783

13.5 查找一个接口中的成员 785

13.6 确定和得到一个程序集中的嵌套类型 786

13.7 显示一个类型的继承层次体系 788

13.8 查找一个类型的子类 790

13.9 查找一个程序集中的所有可串行化类型 792

13.10 得到成员时过滤输出 794

13.11 动态地调用成员 798

13.12 为模糊器提供指导 802

13.13 确定一个类型或方法是否为泛型 804

13.14 通过编程读取清单资源 806

13.15 访问局部变量信息 807

13.16 创建泛型类型 809

第14章 Web 812

14.0 引言 812

14.1 将IP地址转换为主机名 812

14.2 将主机名转换为IP地址 813

14.3 解析URI 814

14.4 构成和验证绝对URI 818

14.5 处理Web服务器错误 820

14.6 与Web服务器通信 823

14.7 通过代理 825

14.8 从URL得到HTML 826

14.9 使用新的Web浏览器控件 827

14.10 缓存数据库表 830

14.11 缓存有多个依赖关系的数据 832

14.12 通过编程预构建一个ASP.NET Web网站 834

14.13 Web转义数据和取消转义 837

14.14 使用UriBuilder类 839

14.15 检查和修改Web应用配置 841

14.16 处理HTML 844

14.17 处理HTTP时使用缓存结果来得到更高的性能 846

14.18 检查一个Web服务器的定制错误页面 848

14.19 确定IIS上ASP.NET的应用映射 851

第15章 XML 854

15.0 引言 854

15.1 按文档顺序读取和访问XML数据 854

15.2 读取Web上的XML 858

15.3 查询一个XML文档的内容 860

15.4 验证XML 862

15.5 通过编程创建XML文档 867

15.6 检测对XML文档的修改 870

15.7 处理XML串中的非法字符 873

15.8 转换XML 875

15.9 分解XML文档 880

15.10 整理XML文档 884

15.11 验证有修改的XML文档而无需重加载 889

15.12 扩展XSLT转换 892

15.13 从现有的XML文件批量地得到模式 895

15.14 向XSLT转换传递参数 897

第16章 网络 901

16.0 引言 901

16.1 编写TCP服务器 901

16.2 编写TCP客户 907

16.3 模拟表单执行 910

16.4 从服务器下载数据 914

16.5 使用命名管道来通信 916

16.6 通过编程完成ping操作 937

16.7 使用SMTP服务发送SMTP邮件 939

16.8 检查网络互连性 944

16.9 使用Socket扫描机器上的端口 949

16.10 使用当前Internet连接设置 954

16.11 使用FTP下载文件 961

第17章 安全 963

17.0 引言 963

17.1 控制对本地程序集中类型的访问 963

17.2 加密/解密串 973

17.3 加密和解密文件 977

17.4 清除加密信息 982

17.5 验证串在传输过程中未遭到破坏 984

17.6 包装串的散列以便于使用 987

17.7 一个更好的随机数生成器 993

17.8 安全地存储数据 994

17.9 使安全断言安全 1001

17.10 防止对程序集的恶意修改 1003

17.11 验证程序集已经被授予特定权限 1006

17.12 尽量减小程序集的攻击面 1007

17.13 获得安全/审计信息 1008

17.14 授予/撤销对文件或注册表键的访问权限 1014

17.15 用安全串保护串数据 1017

17.16 保护流数据 1019

17.17 加密web.config信息 1028

17.18 得到抛出一个SecurityException的完整原因 1030

17.19 得到安全的Unicode编码 1033

17.20 得到一个更安全的文件句柄 1034

第18章 线程与同步 1036

18.0 引言 1036

18.1 创建针对单个线程的静态字段 1036

18.2 对类成员提供线程安全的访问 1039

18.3 防止线程悄无声息地终止 1045

18.4 轮询异步委托 1047

18.5 让异步委托超时 1050

18.6 得到异步委托完成的通知 1052

18.7 确定线程池请求是否排队 1055

18.8 配置定时器 1057

18.9 秘密地存储特定于线程的数据 1060

18.10 用信号量允许多个客户访问资源 1064

18.11 用Mutex同步多个进程 1068

18.12 使用事件来实现线程协作 1079

18.13 得到事件的命名权限 1081

18.14 线程间执行原子操作 1085

第19章 不安全的代码 1087

19.0 引言 1087

19.1 控制对传递给方法的指针的修改 1088

19.2 比较指针 1091

19.3 遍历数组 1093

19.4 管理指向固定数组的指针 1095

19.5 返回数组中一个特殊元素的指针 1096

19.6 创建并使用指针数组 1098

19.7 切换未知指针类型 1099

19.8 将串转换为char* 1102

19.9 声明有内嵌数组的固定大小的结构 1103

第20章 工具箱 1105

20.0 引言 1105

20.1 处理操作系统停止、电源管理或用户会话修改 1105

20.2 控制服务 1110

20.3 列出加载给定程序集的进程 1114

20.4 在本地工作站上使用消息队列 1115

20.5 查找当前Framework版本的路径 1118

20.6 确定全局程序集缓存(GAC)中所注册程序集的版本 1119

20.7 得到Windows目录 1122

20.8 捕获标准输出流的输出 1123

20.9 代码在其自己的应用域中运行 1125

20.10 确定操作系统和当前操作系统的SP版本 1127

相关图书
作者其它书籍
返回顶部