《C#3.0 Cookbook中文版》PDF下载

  • 购买积分:20 如何计算积分?
  • 作  者:(美)JayHilyard,(美)StepbenTeilbet著
  • 出 版 社:北京:清华大学出版社
  • 出版年份:2008
  • ISBN:9787302181095
  • 页数:702 页
图书介绍:本畅销书介绍了关于C#进行程序设计的超过250个秘诀,几乎每个秘诀都包含一个完整的书面代码示例。

前言 1

第1章 语言级集成查询(LINQ) 11

简介 11

查询消息队列 12

使用带有数据的集合语义 14

利用LINQ to SQL重用参数化查询 17

以一种文化敏感的方式对结果排序 19

添加用于LINQ的功能扩展 21

跨数据库执行查询和连接 24

利用LINQ查询配置文件 27

直接从数据库创建XML文件 30

有选择地输出查询结果 36

结合使用LINQ与不支持IEnumerable<T>的集合 38

第2章 字符串和字符 41

简介 41

确定char包含的字符种类 41

在比较两个字符时控制大小写敏感性 44

在一个字符串内寻找另一个字符串出现的所有位置 46

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

把一个字符串与另一个字符串的头部或尾部作比较 51

插入文本到字符串中 52

删除或替换字符串内的字符 54

把二进制数据编码为base64格式 56

解码base64编码的二进制数据 57

把作为byte[]返回的字符串转换为字符串 58

把字符串传递给只接受byte[]的方法 59

把字符串转换为其他类型 61

创建定界字符串 64

从定界字符串中提取数据项 65

遍历字符串中的每个字符 66

从字符串的头部和/或尾部删除字符 67

测试字符串是否为null或者长度为0 68

追加行 68

第3章 类和结构 70

简介 70

创建联合类型的结构 72

使类型可排序 74

使类型可检索 78

间接重载+=、一=、/=和*=运算符 80

间接重载&&、||和?:运算符 82

创建无错的表达式 84

简化布尔逻辑 87

以程序设计语言无关的方式在简单类型之间转换 90

确定何时使用强制转换运算符、as运算符或is运算符 96

利用as运算符进行强制转换 97

利用is运算符确定变量的类型 99

从一个方法返回多个数据项 102

解析命令行参数 104

在运行时初始化常量字段 113

构建可复制的类 115

确保处理对象 118

处理非托管资源 120

确定装箱和拆箱的位置 126

第4章 泛型 129

简介 129

确定使用泛型的时间和位置 129

理解泛型类型 130

利用对应的泛型替换ArrayList 137

用对应的泛型替换Stack和Queue 140

使用链表 144

创建可以初始化为null的值类型 147

反转有序链表中的内容 149

以泛型方式创建只读集合 151

利用对应的泛型替换Hashtable 152

对泛型Dictionary类型使用foreach 155

约束类型参数 156

将泛型变量初始化为它们的默认值 160

第5章 集合 162

简介 162

交换数组中的两个元素 164

快速反转数组 165

编写更灵活的StackTrace类 167

确定一个数据项在List<T>中出现的次数 169

检索List<T>中的特定数据项的所有实例 171

从数组中插入和删除数据项 173

保持List<T>有序 175

对Dictionary的键和/或值排序 177

创建具有最大值和最小值界限的Dictionary 178

在数组中存储列表的快照 181

维持应用程序会话之间的集合 182

测试Array或List<T>中的每个元素 183

对Array或List<T>中的每个元素执行一种操作 185

创建只读的Array或List<T> 186

第6章 迭代器、分部类型和分部方法 189

简介 189

在泛型类型上创建迭代器 190

在非泛型类型上创建迭代器 191

创建自定义的枚举器 193

实现迭代器逻辑 196

强制迭代器停止迭代 199

处理finally块和迭代器 201

在类中实现嵌套的foreach功能 204

组织接口实现 208

生成不再位于主代码路径中的代码 212

向生成的实体中添加挂钩 214

第7章 异常处理 217

简介 217

知道何时捕获和重新抛出异常 222

使用finally块时确保异常不会丢失 223

处理从通过反射调用的方法中抛出的异常 226

防止未处理的异常 228

获取异常信息 230

快速找到问题的根源 233

创建新的异常类型 234

获得栈记录 241

在第一次机会的异常上中断 243

处理从异步委托抛出的异常 246

利用Exception.Data给异常提供它们所需的额外信息 247

在WinForms应用程序中处理未处理的异常 249

处理Windows Presentation Foundation (WPF)应用程序中未处理的异常 251

为常见错误分析异常 253

第8章 诊断 255

简介 255

对调试/跟踪输出提供细粒度的控制 255

确定进程是否停止了响应 258

在应用程序中使用事件日志 260

查找事件日志条目 266

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

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

启用和禁用复杂的跟踪代码 273

捕获进程的标准输出 276

为类创建自定义的调试显示 278

第9章 委托、事件和lambda表达式 280

简介 280

控制何时以及是否在多播委托中触发一个委托 282

从多播委托中的每个委托获得返回值 285

为多播委托中的每个委托单独处理异常 287

把同步委托调用转换成异步委托调用 289

一种高级接口查找机制 291

观察字典的添加和修改 293

使用lambda表达式 302

清晰地建立事件处理程序 306

在lambda表达式中使用不同的参数修饰符 309

在C#中使用闭包 313

使用函子对列表执行多种操作 317

第10章 正则表达式 321

简介 321

枚举匹配 322

从MatchCollection中提取组 324

验证正则表达式的语法 327

只快速查找字符串中的最后一个匹配 328

增强基本的字符串替换功能 329

实现更好的标记器 331

统计文本行数 333

返回在其中找到匹配的一整行内容 335

找到出现的特定匹配 338

使用常见的模式 340

第11章 数据结构与算法 344

简介 344

为一种数据类型生成散列代码 344

生成优先级队列 351

生成一对多映射(MultiMap) 357

生成一棵二叉查找树 364

生成一棵n叉树 375

使用HashSet对象 385

第12章 文件系统I/O 390

简介 390

操作文件属性 391

重命名文件 393

输出与平台无关的EOL字符 394

操作目录属性 396

重命名目录 398

使用通配符查找目录或文件 399

获取目录树 403

解析路径 405

解析环境变量中的路径 407

运行并与控制台工具交互 408

锁定文件的子段 410

等待文件系统中要发生的动作 412

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

查询系统上所有驱动器的信息 417

压缩及解压缩文件 419

第13章 反射 425

简介 425

列出引用的程序集 425

列出导出的类型 427

找出重写方法 428

找出程序集中的成员 433

确定并获取程序集中的嵌套类型 434

显示类型的继承层次结构 435

找出类型的子类 437

找出程序集中所有可序列化的类型 438

动态调用成员 440

确定类型或方法是否是泛型 443

访问局部变量信息 444

生成泛型类型 446

第14章 Web 448

简介 448

将IP地址转换为主机名 448

将主机名转换为IP地址 449

解析URI 450

处理Web服务器错误 453

与Web服务器通信 455

通过代理服务器 456

从URL中获取HTML 457

使用Web浏览器控件 458

将数据库表与缓存绑定 460

通过编程预先构建一个ASP.NET网站 462

为Web对数据进行转义与取消转义 464

使用UriBuilder类 466

检查并修改Web应用程序配置 468

在用HTTP时使用缓存的结果以使性能更快 470

检测Web服务器的自定义错误页 472

第15章 XML 476

简介 476

以文档顺序读取并访问XML数据 476

读取Web上的XML 480

查询XML文档的内容 481

检验XML 485

通过编程生成XML文档 489

检测对XML文档的修改 492

处理XML字符串中的非法字符 494

XML的转换 497

分割XML文档 502

合并XML文档 507

不重载验证修改过的XML文件 512

扩展转换 515

从已有XML文件中成批获得用户的模式 519

向转换传递参数 520

第16章 联网 525

简介 525

编写一个TCP服务器端 525

编写一个TCP客户端 530

模拟表单执行 532

通过HTTP传送数据 535

使用命名管道进行通信 538

以编程方式发送Ping 544

使用SMTP服务发送SMTP邮件 545

使用套接字扫描机器的端口 550

使用当前的互联网连接设置 554

使用FTP传输文件 559

第17章 安全性 562

简介 562

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

加密/解密字符串 570

加密和解密文件 573

清理密码信息 577

验证字符串保持未破坏的流传输 579

安全存储数据 582

保证安全断言的安全 588

验证程序集已经具备特定许可 590

最小化程序集的攻击面 591

获得安全/审计信息 592

授权/撤销对文件或注册表键的访问 596

使用安全字符串保护字符串数据 599

保护流数据 601

加密web.config信息 609

获得抛出SecurityException的完整理由 611

实现安全的Unicode编码 613

获得一个更安全的文件句柄 614

第18章 线程与同步 616

简介 616

创建每个线程的静态字段 616

向类成员提供线程安全的访问 618

防止沉默的线程终止 623

同步委托完成的通知 625

秘密存储特定线程的数据 627

使用信号量实现资源的多重访问 630

使用Mutex同步多个进程 634

使用事件协调线程 643

为事件获得命名权 645

在线程间执行原子操作 648

优化主读访问 649

第19章 工具箱 660

简介 660

处理操作系统关机、电源管理或用户会话修改 660

列出加载程序集的进程 667

使用本地工作站上的消息队列 669

找出当前框架版本的路径 671

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

捕获标准输出流的输出 675

运行位于自己的AppDomain中的代码 676

确定操作系统和当前操作系统的服务包版本 678

第20章 数字与枚举 680

简介 680

度与弧度之间的转换 682

对各种数据类型使用按位求补运算符 682

将数字从某种基数转换为基数10 684

确定一个字符串是否是合法数字 685

舍入浮点值 685

选择一种舍入算法 686

温度计数法之间的转换 687

安全地执行收缩数字强制转换 688

将一个枚举值显示为字符串 690

将纯文本转换为等价的枚举值 692

测试合法的枚举值 693

测试合法的标志枚举 695

使用位掩码中的枚举成员 697

确定一个或多个枚举标志是否被设置 699

确定Decimal或Double数字的整数部分 702