技术教育社区
www.teccses.org

C#经典实例-(第二版)

封面

作者:希亚德

出版社:中国电力出版社

出版日期:2007

ISBN:9787508351520

电子书格式:pdf/epub/txt

内容简介

本书是《C#经典实例》的最新版,针对C#2.0和.NET 2.0做了全面修订。对于C#程序员经常遇到的300多个最常见和不那么常见的任务,本书涵盖了解决这些问题所需的全部技巧。从使用正则表达式到处理泛型类型,再到如何让代码在其自己的应用域中运行,通过本书的介绍,你会更深入地了解 C#语言,在基于.NET 2.0的Windows应用和ASP.NET Web应用新领域中更加游刃有余。
  本书共20章,主要包括以下内容:泛型类型、集合和迭代器、异常处理和诊断、事件、委托以及匿名方法、数值、枚举、类、结构和部分类、串、正则表达式和XML。
  本书中的每个技巧都做了精心组织,以便你快速了解问题,学会如何加以解决,并了解到可能存在的问题或限制。对于刚接触c#的程序员来说,本书绝对是你起步并不断提高技艺的得力工具。如果你已经是一个有经验的程序员,会发现利用本书能很方便地查看语法和常见用例;随着企业的发展,你还会遇到更棘手的问题,本书将是解决这些问题的一个绝好资源。不论是谁,可能只需这里的一个技巧就能让你轻松地脱身,而不必整日整夜地呆在计算机旁苦思冥想。

本书特色


本书是畅销书《C#经典实例》的最新版,针对C# 2.0和.NET 2.0做了全面修订。对于C#程序员经常遇到的300多个最常见和不那么常见的任务,本书涌盖了解决这些问题所需的全部技巧。从使用正则表达式到处理泛型类型,再到如何让代码在其自己的应用域中运行,通过本书的介绍,你会更深入地了解C#语言,在基于.NET 2.0的Windows应用和ASP.NET Web应用新领域中更加游刃有余。.
第二版的主要特点包括:
·编写了新的章节来讨论泛型、迭代器、部分类型以及Web,并补充了90多个新技巧,包括“使用匿名方法”、“迭代器实现为重载操作符”和“加密web.config信息”等等。
·提供了反映C#2.0和.NET 2.0变化的一些新技巧,如“将Stack和Queue替换为相应的泛型类型”和“控制服务”。..
·为每个解决方案捉供了可下载的代码,包括完备的测试用例,以便编译和测试这些示例,还可以复制粘贴对你有用的代码行,来创建你自己的解决方案。
本书共20章,主要包括以下内容:
·泛型类型、集合和迭代器
·异常处理和诊断、事件、委托以及匿名方法
·数值、枚举、类、结构和部分类
·串、正则表达式和XML
与O’Reilly Cookbook系列的其他书一样,这里的每个技巧都做了精心组织,以便你快速了解问题,学会如何加以解决,并了解到可能存在的问题或限制。对于刚接触C#的程序员来说,本书绝对是你起步并不断提高技艺的得力工具。如果你已经是一个有经验的程序员,会发现利用本书能很方便地查看语法和常见用例;随着企业的发展,你还会遇到更棘手的问题,本书将是解决这些问题的一个绝好资源。不论是谁,可能只需这里的一个技巧就能让你轻松地脱身,而不必整日整夜地呆在计算机旁苦思冥想。…


目录

前言
第1章数字与枚举
1.0引言.
1.1确定分数与浮点数值之间的近似相等性
1.2度转换为弧度
1.3弧度转换为度
1.4对各种数据类型使用反码操作符
1.5测试奇偶值
1.6得到一个数的高字或低宇
1.7将其他进制的数转换为十进制数
1.8确定一个串是否是一个合法数字
1.9浮点数值取整
1.10选择取整算法
1.11摄氏温度转换为华氏温度
1.12华氏温度转换为摄氏温度
1.13安全地执行窄化数值强制转换
1.14得出直角三角形任意三边的边长
1.15得出直角三角形的角度
1.16将枚举值显示为一个串
1.17将纯文本转换为一个等价的枚举值
1.18测试一个合法的枚举僖
1.19测试是否为合法的标志枚举
1.20在位掩码中使用枚举成员
1.21确定是否设置了一个或多个枚举标志
1.23确定一个Decimal或Double的整数部分
第2章串和字符
2.0引言
2.1确定一个char包含何种字符
2.2确定一个字符是否在指定范围内
2.3匕较两个字符时控制大小写敏感性
2.4找出字符在串中的所有出现
2.5找出一个串在另一个串中的所有出现的位置
2.6实现一个简单的词法分析器解构一个串
2.7男较两个串时控制大小写敏感性
2.8将一个串与第二个串的开头或结尾进行比较
2.9在串中插入文本
2.10删除或替换串中的字符
2.11将二进制数据编码为Base64
2.12对Base64编码的二进制数据解码
2.13将作为Byte[]返回的一个串转换回String
2.14将一个String传递给只接受byte[]的方法
2.15将串转换为其他类型
2.16格式化串中的数据
2.17创建一个定界串
2.18从定界串抽取项
2.19设置StringBuilder所能包含的最大字符数
2.20迭代处理串中的各个字符
2.21改善串比较性能
2.22改善StringBuilder的性能
2.23去掉串开头和/或结尾的字符
2.24测试一个串是否为Null或空串
2.25追加一行
2.26大块数据的编码
第3章类和结构
3.0引言
3.1创建联合类型的结构
3.2允许一个类型将自身表示为String
3.3将一个对象的串表示转换为实际对象
3.4利用抽象基类实现多态
3.5使类型可排序
3.6使类型可搜索
3.7间接重载+=.-=./=和最=操作符
3.8间接重载&&.II,和?:操作符
3.9打开或关闭位
3.10建立无错表达式
3.11最小化(减少)布尔逻辑
3.12以独立于语言的方式实现简单类型间的转换
3.13确定何时使用强制转换操作符.as操作符或is操作符
3.14用as操作符强制转换
3.15用is操作符确定一个变量的类型
3.16用接口实现多态
3.17在多个对象类型上调用相同的方法
3.18使用接口增加通知回调
3.19使用多个入口点实现应用版本化
3.20避免创建仅部分初始化的对象
3.21从一个方法返回多项
3.22解析命令行参数
3.23改进类以与COM互操作
3.24在运行时初始化一个常量字段
3.25编写与所有托管语言兼容的代码
3.26构建可复制类
3.27确保对象撤销
3.28通过托管代码释放COM对象
3.29创建对象缓存
3.30回滚对象修改
3.31非托管资源的撤销
3.32确定装箱和拆箱发生在何处
第4章泛型
4.0引言
4.1决定何时及何处使用泛型
4.2了解泛型类型
4.3得到泛型类型的类型
4.4将ArrayList替换为其相应的泛型类型
4.5将Stack和Queue替换为相应的泛型类型
4.6实现一个链表
4.7创建可以初始化为Null的值类型
4.8逆转有序表的内容
4.9建立泛型只读集合
4.10将Hashtable替换为其相应的泛型类型
4.11对泛型Dictionary类型使用foreach
4.12约束类型参数
4.13将泛型变量初始化为其默认值
第5章集合
5.0引言
5.1交换数组中的两个元素
5.2快速逆置数组
5.3逆置二维数组
5.4逆置多重数组
5.5编写一个更灵活的StackTrace类
5.6确定一项出现在List中的次数
5.7获取一个特定项在List中的所有实例
5.8从数组插入和删除项
5.9保持List有序
5.10对字典的键和/或值排序
5.11创建一个有最大值和最小值边界的字典
5.12将数组数据显示为定界串
5.13在数组中存储列表的快照
5.14在应用会话之间持久存储集合
5.15测试Array或List中的每一个元素
5.16在Array或List中的每个元素上执行一个动作
5.17创建一个只读Array或List
第6章迭代器和部分类型
6.0引言
6.1在类中实现嵌套foreach功能
6.2创建定制枚举器
6.3在泛型类型上创建一个迭代器
6.4在非泛型类型上创建一个迭代器
6.5创建接受参数的迭代器
6.6在一个类型上增加多个迭代器
6.7将迭代器实现为重载操作符
6.8迫使迭代器停止迭代
6.9处理Finally块和迭代器
6.10组织接口实现
6.11生成不再在主代码路径中的代码
第7章异常处理
7.0引言
7.1验证关键参数
7.2了解何时捕获和重新抛出异常
7.3明确异常及其用法
7.4单独地处理派生异常
7.5使用Finally块时确保异常,不丢失
7.6处理通过反射调用的方法所抛出的异常
7.7调试加载程序集时的问题
7.8托管异常和HRESULT之间的映射
7.9处理用户自定义的HRESULT
7.10避免未处理的异常
7.11获得异常信息
7.12快速找出问题根源
7.13创建一个新的异常类型
7.14得到栈轨迹
7.15异常初次出现时中断
7.16避免恶毒的TypeInitializationException
7.17处理从异步委托抛出的异常
7.18通过Exception.Data为异常提供所需的额外信息
7.19使用可视化工具以一种新方式查看异常
7.20在WinForms应用中处理未处理的异常
第8章诊断
8.0引言
8.1在生产代码中控制跟踪输出
8.2对调试/跟踪输出提供细粒度控制
8.3创建你自己的定制开关类
8.4有条件地编译代码块
8.5确定一个进程是否停止响应
8.6在应用中使用事件日志
8.7改变一个定制事件日志的最大大小
8.8搜索事件日志条目
8.9监视事件日志中的特定条目
8.10查找一个特定事件日志的所有源
8.11实现一个简单的性能计数器
8.12实现需要基计数器的性能计数器
8.13启用和禁用复杂的跟踪代码
8.14捕获进程的标准输出
8.15为类创建定制调试显示
8.16确定当前AppDomain设置信息
8.17通过编程提高进程的优先级
8.18查看运行时环境,确定能做何处理
第9章委托.事件和匿名方法
9.0引言
9.1控制组播委托中是否触发和何时触发一个委托
9.2从组播委托中的各个委托得到返回值
9.3单独地处理组播委托中各委托的异常
9.4将同步委托调用转换为异步委托调用
9.5包装密封类来增加事件
9.6向事件来回传递特殊化参数
9.7一种高级接口搜索机制
9.8一个高级成员搜索机制
9.9观察对一个Hashtable的增加和修改
9.10使用Windows键盘钩
9.11跟踪和响应鼠标
9.12使用匿名方法
9.13简洁地建立事件处理器
9.14在匿名方法中使用不同参数修饰符
9.15使用C#中的闭包
9.16使用算子在一个列表上执行多个操作
第10章正则表达式
10.0引言
10.1枚举列出匹配
10.2从MatchCollection抽取组
10.3验证正则表达式的语法
10.4快速地找出串中最后一个匹配
10.5替换串中的字符或单词
10.6增强基本的串替换功能
10.7实现一个更好的词法分析器
10.8编译正则表达式
10.9统计文本行
10.10返回找到匹配的整行
10.11找到一个匹配的特定出现
10.12使用公共模式
10.13为正则表达式增加文档注释
10.14使用内置正则表达式解析ASP.NET页面
第11章数据结构和算法..
11.0引言
11.1为一个数据类型创建散列码
11.2创建优先队列
11.3创建双向队列
11.4确定字符或串在哪里不平衡
11.5创建一对多映射(MultiMap)
11.6创建二叉树
11.7创建n叉树
11.8创建一个Set对象
第12章文件系统I/O
12.0引言
12.1创建.复制.移动或删除文件
12.2管理文件属性
12.3重命名文件
12.4确定一个文件是否存在
12.5选择一个打开文件或流的方法来完成读和/或写
12.6随机地访问部分文件
12.7输出一个平台独立的EOL字符
12.8创建和读写文件
12.9确定一个目录是否存在
12.10创建.移动或删除一个目录
12.11管理目录属性
12.12重命名目录
12.13使用通配符搜索目录或文件
12.14得到目录树
12.15解析路径
12.16解析环境变量中的路径
12.17验证路径
12.18在应用中使用临时文件
12.19只用文件句柄打开文件流
12.20一次写多个输出文件
12.21启动控制台工具并与之交互
12.22锁定文件中的部分
12.23监视文件系统中对一个或多个或目录的特定修改
12.24等待文件系统中发生某个动作
12.25比较两个可执行模块的版本信息
12.26查询一个系统上所有驱动器的信息
12.27加密/解密一个现有的文件
12.28压缩和解压文件
第13章反射
13.0引言
13.1列出所引用的程序集
13.2列出导出的类型,
13.3查找被覆盖的方法
13.4查找一个程序集中的成员
13.5查找一个接口中的成员
13.6确定和得到一个程序集中的嵌套类型
13.7显示一个类型的继承层次体系
13.8查找一个类型的子类
13.9查找一个程序集中的所有可串行化类型
13.10得到成员时过滤输出
13.11动态地调用成员
13.12为模糊器提供指导
13.13确定一个类型或方法是否为泛型
13.14通过编程读取清单资源
13.15访问局部变量信息
13.16创建泛型类型
第14章Web
14.0引言
14.1将IP地址转换为主机名
14.2将主机名转换为IP地址
14.3解析URI
14.4构成和验证绝对URI
14.5处理Web服务器错误
14.6与Web服务器通信
14.7通过代理
14.8从URL得到HTML
14.9使用新的Web浏览器控件
14.10缓存数据库表
14.11缓存有多个依赖关系的数据
14.12通过编程预构建一个ASP.NETWeb网站
14.13Web转义数据和取消转义
14.14使用UriBuilder类
14.15检查和修改Web应用配置
14.16处理HTML
14.17处理HTTP时使用缓存结果来得到更高的性能
14.18检查一个Web服务器的定制错误页面
14.19确定IIS上ASP.NET的应用映射
第15章XML
15.0引言
15.1按文档顺序读取和访问XML数据
15.2读取Web上的XML
15.3查询一个XML文档的内容
15.4验证XML
15.5通过编程创建XML文档
15.6检测对XML文档的修改
15.7处理XML串中的非法字符
15.8转换XML
15.9分解XML文档
15.10整理XML文档
15.11验证有修改的XML文档而无需重加载
15.12扩展XSLT转换
15.13从现有的XML文件批量地得到模式
15.14向XSLT转换传递参数
第16章网络
16.0引言
16.1编写TCP服务器
16.2编写TCP客户
16.3模拟表单执行
16.4从服务器下载数据
16.5使用命名管道来通信
16.6通过编程完成ping操作
16.7使用SMTP服务发送SMTP邮件
16.8检查网络互连性
16.9使用Socket扫描机器上的端口
16.10使用当前Internet连接设置
16.11使用FTP下载文件
第17章安全
17.0引言
17.1控制对本地程序集中类型的访问
17.2加密/解密串
17.3加密和解密文件
17.4清除加密信息
17.5验证串在传输过程中未遭到破坏
17.6包装串的散列以便于使用
17.7一个更好的随机数生成器
17.8安全地存储数据
17.9使安全断言安全
17.10防止对程序集的恶意修改
17.11验证程序集已经被授予特定权限
17.12尽量减小程序集的攻击面
17.13获得安全/审计信息
17.14授予/撤销对文件或注册表键的访问权限
17.15用安全串保护串数据
17.16保护流数据
17.17加密web.config信息
17.18得到抛出一个SecurityException的完整原因
17.19得到安全的Unicode编码
17.20得到一个更安全的文件句柄
第18章线程与同步
18.0引言
18.1创建针对单个线程的静态宇段
18.2对类成员提供线程安全的访问
18.3防止线程悄无声息地终止
18.4轮询异步委托
18.5让异步委托超时
18.6得到异步委托完成的通知
18.7确定线程池请求是否排队
18.8配置定时器
18.9秘密地存储特定于线程的数据
18.10用信号量允许多个客户访问资源
18.11用Mutex同步多个进程
18.12使用事件来实现线程协作
18.13得到事件的命名权限
18.14线程间执行原子操作
第19章不安全的代码
19.0引言
19.1控制对传递给方法的指针的修改
19.2比较指针
19.3遍历数组
19.4管理指向固定数组的指针
19.5返回数组中一个特殊元素的指针
19.6创建并使用指针数组
19.7切换未知指针类型
19.8将串转换为char最
19.9声明有内嵌数组的固定大小的结构
第20章工具箱
20.0引言
20.1处理操作系统停止.电源管理或用户会话修改
20.2控制服务
20.3列出加载给定程序集的进程
20.4在本地工作站上使用消息队列
20.5查找当前Framework版本的路径
20.6确定全局程序集缓存(GAC)中所注册程序集的版本
20.7得到Windows目录
20.8捕获标准输出流的输出
20.9代码在其自己的应用域中运行
20.10确定操作系统和当前操作系统的SP版本…

下载地址

立即下载

(解压密码:www.teccses.org)

Article Title:《C#经典实例-(第二版)》
Article link:https://www.teccses.org/86778.html