C# 3.0 Cookbook中文版(第3版)
基本信息
- 原书名: C# 3.0 Cookbook
- 原出版社: O'Reilly Media, Inc.
- 作者: (美)Jay Hilyard Stephen Teilhet
- 译者: 陈宗斌
- 丛书名: 清华大学出版社O'Reilly系列
- 出版社:清华大学出版社
- ISBN:9787302181095
- 上架时间:2008-12-1
- 出版日期:2008 年12月
- 开本:16开
- 页码:702
- 版次:31
- 所属分类:
计算机 > 软件与程序设计 > C#
内容简介回到顶部↑
当你在使用c#3.0的过程中陷入困境而需要快速找到解决方案时,为什么要辛苦地读完一本教程呢?这本最畅销书现在提供了超过250个代码秘诀,针对的是c#程序员面临的常见和不那么常见的问题。本书添加了许多新秘诀,从以前版本继承来的大多数秘诀都经过了修订,以便帮助你利用c#3.0和.net 3.5平台提供的能力——以及克服它们提出的挑战。本书用一整章的篇幅介绍了用于linq(语言级集成查询)的秘诀,并用额外两章介绍了使用扩展方法的秘诀,还介绍了lambda表达式、对象和集合初始化器、新的同步原语以及linq to xml等。本书中的每个秘诀都提供了对单个问题的解决方案,讨论了它为什么会工作,并且提供了查找额外信息的
资源。
资源。
目录回到顶部↑
前言
第1章 语言级集成查询(kinq)
1.0 简介
1.1 查询消息队列
1.2 使用带有数据的集合语义
1.3 利用linq to sql重用参数化查询
1.4 以一种文化敏感的方式对结果排序
1.5 添加用于linq的功能扩展
1.6 跨数据库执行查询和连接
1.7 利用linq查询配置文件
1.8 直接从数据库创建xml文件
1.9 有选择地输出查询结果
1.10 结合使用linq与不支持ienumerable[t]的集合
第2章 字符串和字符
2.0 简介
2.1 确定char包含的字符种类
2.2 在比较两个字符时控制大小写敏感性
2.3 在一个字符串内寻找另一个字符串出现的所有位置
2.4 在比较两个字符串时控制大小写敏感性
2.5 把一个字符串与另~个字符串的头部或尾部作比较
第1章 语言级集成查询(kinq)
1.0 简介
1.1 查询消息队列
1.2 使用带有数据的集合语义
1.3 利用linq to sql重用参数化查询
1.4 以一种文化敏感的方式对结果排序
1.5 添加用于linq的功能扩展
1.6 跨数据库执行查询和连接
1.7 利用linq查询配置文件
1.8 直接从数据库创建xml文件
1.9 有选择地输出查询结果
1.10 结合使用linq与不支持ienumerable[t]的集合
第2章 字符串和字符
2.0 简介
2.1 确定char包含的字符种类
2.2 在比较两个字符时控制大小写敏感性
2.3 在一个字符串内寻找另一个字符串出现的所有位置
2.4 在比较两个字符串时控制大小写敏感性
2.5 把一个字符串与另~个字符串的头部或尾部作比较
译者序回到顶部↑
C#语言是Microsoft公司为推行.NET战略而发布的一种全新的编程语言。它是一种全新的、纯面向对象的编程语言,具有清晰明了的语法结构、优秀的编程开发环境和高效率的编译工具。C#语言从C++语言发展而来,继承了C++语言的所有优点,同时根据.NET战略的需要增强了自身的功能,抛弃了C++中各种不安全因素,从而使程序员能够更有效率地使用C#开发应用软件。.
另外,C#在许多方面与Java相似;Java程序员一旦学习了Framework SDK,他们在C#中就会有一种宾至如归的感觉。C#还非常适合于Visual Basic.NET程序员,当他们需要能够更多地控制代码执行的任务并且不想为此编写C++代码时就可以使用C#。
本书侧重于解决C#程序员在开发应用程序时遇到的各类问题,并根此组织全书内容。这些解决方案称为秘诀;每个秘诀都包含一个问题,它的解决方案及相关信息的讨论,最后还提供了关于使用FCL中的类的详细信息的出处、针对这个主题的其他书籍、相关的文章以及其他秘诀。这种问题一答案格式提供了问题的完整解决方案,使得本书易于阅读和使用。几个每个秘诀都包含一个完整的书面代码示例,展示了如何解决特定的问题,还讨论了底层技术的工作原理,并且根据需要列出了一些替代方法、限制条件及其他考虑事项。..
本书适合于C#或.NET开发人员阅读,本书提供了开发人员每天所面临的各种问题以及一些可能不太常见的问题的解决方案;另外,本书在介绍每个主题时,考虑到初学者的需要,都会给出相应的程序示例,非常适合程序设计初学者阅读。
参加本书翻译的人员有:陈宗斌、陈红霞、张景友、易小丽、陈婷、管学岗、王新彦、金惠敏、张海峰、 徐晔、戴锋、张德福、张士华、张锁玲、杜明宗、高玉琢、王涛、申川、孙玲、李振国、高德杰、宫飞、侯经国、刘淑妮、张春林、李大成、程明、张路红、张淑芝、孙先国、刘冀得、梁永翔、张广东、郁琪琳、邵长凯、蒲书箴、潘曙光、刘瑞东、李军、焦敬俭、赵中元、金鑫、赵宏伟、赵宏顺、尹周、王开年、贾震、陆晓萍、金国良、俞群等。由于时间紧迫,加之译者水平有限,错误在所难免,恳请广大读者批评指正。...
另外,C#在许多方面与Java相似;Java程序员一旦学习了Framework SDK,他们在C#中就会有一种宾至如归的感觉。C#还非常适合于Visual Basic.NET程序员,当他们需要能够更多地控制代码执行的任务并且不想为此编写C++代码时就可以使用C#。
本书侧重于解决C#程序员在开发应用程序时遇到的各类问题,并根此组织全书内容。这些解决方案称为秘诀;每个秘诀都包含一个问题,它的解决方案及相关信息的讨论,最后还提供了关于使用FCL中的类的详细信息的出处、针对这个主题的其他书籍、相关的文章以及其他秘诀。这种问题一答案格式提供了问题的完整解决方案,使得本书易于阅读和使用。几个每个秘诀都包含一个完整的书面代码示例,展示了如何解决特定的问题,还讨论了底层技术的工作原理,并且根据需要列出了一些替代方法、限制条件及其他考虑事项。..
本书适合于C#或.NET开发人员阅读,本书提供了开发人员每天所面临的各种问题以及一些可能不太常见的问题的解决方案;另外,本书在介绍每个主题时,考虑到初学者的需要,都会给出相应的程序示例,非常适合程序设计初学者阅读。
参加本书翻译的人员有:陈宗斌、陈红霞、张景友、易小丽、陈婷、管学岗、王新彦、金惠敏、张海峰、 徐晔、戴锋、张德福、张士华、张锁玲、杜明宗、高玉琢、王涛、申川、孙玲、李振国、高德杰、宫飞、侯经国、刘淑妮、张春林、李大成、程明、张路红、张淑芝、孙先国、刘冀得、梁永翔、张广东、郁琪琳、邵长凯、蒲书箴、潘曙光、刘瑞东、李军、焦敬俭、赵中元、金鑫、赵宏伟、赵宏顺、尹周、王开年、贾震、陆晓萍、金国良、俞群等。由于时间紧迫,加之译者水平有限,错误在所难免,恳请广大读者批评指正。...
前言回到顶部↑
C#语言面向的是Microsoft .NET平台的开发人员,他们应该使用过类C的语言,如C、C++或Java。与用于MicrosoftWindows平台的C或C++的以前版本不同,C#代码运行在托管执行环境之下。Microsoft把C#描绘为用于.NET开发的现代创新型语言,并且继续为其提供像语言级集成查询(Language Integrated Query,LINQ)这样的新特性来强化这一点。C# 3.0中的新特性在合适时允许更具描述性和功能性的编程风格,同时它还仍然具有优秀的面向对象特性。其主要思想是使用适合于你的问题的编程风格,并且C#将支持你的努力。.
C#允许你执行许多类似于C/C++的功能,比如通过指针和运算符重载进行直接内存访问,在Visual Basic.NET中不支持它。C#是一种用于.NET的系统级编程语言。在C#中仍然可以做极佳的应用程序级的工作,但是它的真正闪光之处体现在你需要构建更贴近Framework的代码时。
如果你见过C#,你可能注意到它在许多方面与Java相似;Java程序员一旦学习了Framework SDK,他们在C#中就会有一种宾至如归的感觉。C#还非常适合于Visual Basic.NET程序员,当他们需要能够更多地控制代码执行的任务并且不想为此编写C++代码时就可以使用C#。在Web上,你将发现非常多的人利用C#做一些非常优秀的工作,还可以在一些站点上发现大量的示例代码,如http://www.codeplex.com和http://www.codeproject.com。
我们基于第一次学习C#时遇到的编程问题开始编写本书,并且基于该语言中新的挑战和能力继续扩展它。在这一版中,我们重新编写了许多解决方案的方法,以便利用LINQ,以及基于LINQ及C# 3.0中的其他新特性创建全新的解决方案。我们希望本书将帮助你顺利通过一些常见的(以及不那么常见的)陷阱,解决每一个人在刚开始学习一种新语言时将会碰到的一些问题,以及帮助他们处理在开发周期中遇到的一些稍微有点出人意料的事项。我们发现.NET Framework类库(FCL)中没有提供这些解决问题的秘诀,即使Microsoft提供了大量功能避免人们从头开始开发代码。你可能会立即使用其中一些解决方案,有些解决方案你可能永远也不会用到,但是我们希望本书可以帮助你获得关于C#和.NET Framework的最多知识。
本书是依据你在作为C#程序员时将要解决的各类问题来组织内容的。这些解决方案称为秘诀,每个秘诀都包含一个问题、它的解决方案、解决方案及相关信息的讨论,最后还提供了关于使用FCL中的类的详细信息的出处、针对这个主题的其他书籍、相关的文章以及其他秘诀。这种问题—答案格式提供了问题的完整解决方案,使得本书易于阅读和使用。几乎每个秘诀都包含一个完整的书面代码示例,展示了如何解决特定的问题,还讨论了底层技术的工作原理,并且根据需要列出了一些替代方法、限制条件及其他考虑事项。
本书读者对象
在使用本书时,你不必是一名经验丰富的C#或.NET开发人员——它是为各个层次的用户设计的。本书提供了开发人员每天所面临的各种问题以及——些可能不太常见问题的解决方案。其中的秘诀面向的是眼前就需要解决问题的真实开发人员,在能够解决问题之前不需要学习许多理论知识。虽然参考书籍或教程可以讲述一些一般性的概念,但是它们一般不会帮助你解决真实的问题。我们选择通过示例讲述知识,这是一种大多数人都能够学会的自然方式。
本书中解决的绝大多数问题是C#开发人员会频繁面对的,但是—些更高级的问题需要结合有多种技术的更复杂的解决方案。每个秘决都旨在帮助你快速理解问题、学习如何解决它,并查明任何潜在的折衷或结果以帮助你快速、高效、最省力地解决问题。
甚至为了不让你自己动手输入解决方案,我们在O'Reilly Web站点上提供’了本书的示例代码,以便于使用“编辑器继承”的开发模式(复制和粘贴),以及帮助经验不足的开发人员查看如何应用良奸的编程实践。示例代码提供了一种运行的测试环境,可用于实践每个解决方案,但是本书中的每个解决方案都提供了足够多的代码,使得你无需示例代码也可以实现解决方案。本书的目录页面(http"//www.oreilly.com/catalog/9780596516109)上提供了示例代码。
使用本书的前提条件
为了运行本书中的示例代码,你需要一台运行Windows XP或更高版本的计算机。少数几种联网或XML解决方案需要Microsoft Internet信息服务器(IIS)版本5.1或更高版本,联网一章中的FTP秘诀需要本地配置的FTP服务器。
为了打开和编译本书中的示例,你需要Visual Studio .NET 2008。如果你精通可下载的
Framework SDK及其命令行编译器,那么在学习本书内容及代码示例时应该不会遇到任何麻烦。
平台说明
本书中的解决方案是使用VisualStudio .NET 2008开发的。C# 3.0与C# 2.0之间具有显著的差别,第2版中示例代码的变化也反映了这一事实。
值得一提的是尽管C#目前的版本是3.0,但是.NETFramework已经发展到版本3.5。.NET3.0引入了Windows Communication Foundation、Windows Presentation Foundation和Windows Workflow Foundation作为对2.0框架基础的补充功能,但是C#没有改变。现在,在C# 3.0中,出现了许多新功能,这主要是由于引入了LINQ以及进行多功能编程的能力。
本书组织结构
本书被组织为20章,每一章都重点关注创建C#解决方案方面的一个特定主题。下面总结了每一章的要点,概述了本书的内容:
第1章:浯言级集成查询(LINQ)
本章介绍语言级集成查询(LINQ)及其使用对象、ADO.NET和XML的方式。有一些秘诀使用了许多标准查询运算符,并且说明如何使用一些并非语言中的关键字但仍然相当强大的查询运算符。
C#允许你执行许多类似于C/C++的功能,比如通过指针和运算符重载进行直接内存访问,在Visual Basic.NET中不支持它。C#是一种用于.NET的系统级编程语言。在C#中仍然可以做极佳的应用程序级的工作,但是它的真正闪光之处体现在你需要构建更贴近Framework的代码时。
如果你见过C#,你可能注意到它在许多方面与Java相似;Java程序员一旦学习了Framework SDK,他们在C#中就会有一种宾至如归的感觉。C#还非常适合于Visual Basic.NET程序员,当他们需要能够更多地控制代码执行的任务并且不想为此编写C++代码时就可以使用C#。在Web上,你将发现非常多的人利用C#做一些非常优秀的工作,还可以在一些站点上发现大量的示例代码,如http://www.codeplex.com和http://www.codeproject.com。
我们基于第一次学习C#时遇到的编程问题开始编写本书,并且基于该语言中新的挑战和能力继续扩展它。在这一版中,我们重新编写了许多解决方案的方法,以便利用LINQ,以及基于LINQ及C# 3.0中的其他新特性创建全新的解决方案。我们希望本书将帮助你顺利通过一些常见的(以及不那么常见的)陷阱,解决每一个人在刚开始学习一种新语言时将会碰到的一些问题,以及帮助他们处理在开发周期中遇到的一些稍微有点出人意料的事项。我们发现.NET Framework类库(FCL)中没有提供这些解决问题的秘诀,即使Microsoft提供了大量功能避免人们从头开始开发代码。你可能会立即使用其中一些解决方案,有些解决方案你可能永远也不会用到,但是我们希望本书可以帮助你获得关于C#和.NET Framework的最多知识。
本书是依据你在作为C#程序员时将要解决的各类问题来组织内容的。这些解决方案称为秘诀,每个秘诀都包含一个问题、它的解决方案、解决方案及相关信息的讨论,最后还提供了关于使用FCL中的类的详细信息的出处、针对这个主题的其他书籍、相关的文章以及其他秘诀。这种问题—答案格式提供了问题的完整解决方案,使得本书易于阅读和使用。几乎每个秘诀都包含一个完整的书面代码示例,展示了如何解决特定的问题,还讨论了底层技术的工作原理,并且根据需要列出了一些替代方法、限制条件及其他考虑事项。
本书读者对象
在使用本书时,你不必是一名经验丰富的C#或.NET开发人员——它是为各个层次的用户设计的。本书提供了开发人员每天所面临的各种问题以及——些可能不太常见问题的解决方案。其中的秘诀面向的是眼前就需要解决问题的真实开发人员,在能够解决问题之前不需要学习许多理论知识。虽然参考书籍或教程可以讲述一些一般性的概念,但是它们一般不会帮助你解决真实的问题。我们选择通过示例讲述知识,这是一种大多数人都能够学会的自然方式。
本书中解决的绝大多数问题是C#开发人员会频繁面对的,但是—些更高级的问题需要结合有多种技术的更复杂的解决方案。每个秘决都旨在帮助你快速理解问题、学习如何解决它,并查明任何潜在的折衷或结果以帮助你快速、高效、最省力地解决问题。
甚至为了不让你自己动手输入解决方案,我们在O'Reilly Web站点上提供’了本书的示例代码,以便于使用“编辑器继承”的开发模式(复制和粘贴),以及帮助经验不足的开发人员查看如何应用良奸的编程实践。示例代码提供了一种运行的测试环境,可用于实践每个解决方案,但是本书中的每个解决方案都提供了足够多的代码,使得你无需示例代码也可以实现解决方案。本书的目录页面(http"//www.oreilly.com/catalog/9780596516109)上提供了示例代码。
使用本书的前提条件
为了运行本书中的示例代码,你需要一台运行Windows XP或更高版本的计算机。少数几种联网或XML解决方案需要Microsoft Internet信息服务器(IIS)版本5.1或更高版本,联网一章中的FTP秘诀需要本地配置的FTP服务器。
为了打开和编译本书中的示例,你需要Visual Studio .NET 2008。如果你精通可下载的
Framework SDK及其命令行编译器,那么在学习本书内容及代码示例时应该不会遇到任何麻烦。
平台说明
本书中的解决方案是使用VisualStudio .NET 2008开发的。C# 3.0与C# 2.0之间具有显著的差别,第2版中示例代码的变化也反映了这一事实。
值得一提的是尽管C#目前的版本是3.0,但是.NETFramework已经发展到版本3.5。.NET3.0引入了Windows Communication Foundation、Windows Presentation Foundation和Windows Workflow Foundation作为对2.0框架基础的补充功能,但是C#没有改变。现在,在C# 3.0中,出现了许多新功能,这主要是由于引入了LINQ以及进行多功能编程的能力。
本书组织结构
本书被组织为20章,每一章都重点关注创建C#解决方案方面的一个特定主题。下面总结了每一章的要点,概述了本书的内容:
第1章:浯言级集成查询(LINQ)
本章介绍语言级集成查询(LINQ)及其使用对象、ADO.NET和XML的方式。有一些秘诀使用了许多标准查询运算符,并且说明如何使用一些并非语言中的关键字但仍然相当强大的查询运算符。
书摘回到顶部↑
第1章语言级集成查询(LINQ)
1.0 简介
语言级集成查询(Language Integrated Query,LINQ)是访问许多不同源数据的新方式。
LINQ提供了一种可以在单个查询中独立或者同时操作不同数据域的查询模型。LINQ给.NET语言引入了查询数据的能力,并且其中一些语言已经提供了扩展使得甚至可以更直观地使用它。其中一种语言就是C#,在C#3.0中有许多对语言的扩展,它们有助于以一种功能丰富、直观的方式为查询提供便利。
传统的面向对象程序设计基于一种强制性的风格,其中开发人员不仅要详细描述他们希望发生什么事情,而且要描述关于应该如何通过代码执行该任务的绝大多数细节。LINQ有助于使代码更具说明性,从而便于开发人员描述他们想要做什么,而不用详述如何达到目标。LINQ还支持更实用的编程风格。这些变化可以显著减少执行某些任务所需的代码量。也就是说,面向对象程序设计在c#和.NET中仍然具有强大的生命力,但是c#语言第一次提供了一种机会,让你依据自己的需要选择编程风格。不过,注意:LINQ并不是对各种情况都适用,也不能代替良好的设计或实践。你可能使用LINQ编写出糟糕的代码,就像你可能编写糟糕的面向对象或过程式代码一样。其一贯的难点在于搞清楚什么时候适合使用哪种技术。
LINQ的初始版本包含许多数据域,如下所示:
•LINQ to 0bjects
•LINQ to XML
•LINQ to AD0.NET
•LINQ to SQL
1.0 简介
语言级集成查询(Language Integrated Query,LINQ)是访问许多不同源数据的新方式。
LINQ提供了一种可以在单个查询中独立或者同时操作不同数据域的查询模型。LINQ给.NET语言引入了查询数据的能力,并且其中一些语言已经提供了扩展使得甚至可以更直观地使用它。其中一种语言就是C#,在C#3.0中有许多对语言的扩展,它们有助于以一种功能丰富、直观的方式为查询提供便利。
传统的面向对象程序设计基于一种强制性的风格,其中开发人员不仅要详细描述他们希望发生什么事情,而且要描述关于应该如何通过代码执行该任务的绝大多数细节。LINQ有助于使代码更具说明性,从而便于开发人员描述他们想要做什么,而不用详述如何达到目标。LINQ还支持更实用的编程风格。这些变化可以显著减少执行某些任务所需的代码量。也就是说,面向对象程序设计在c#和.NET中仍然具有强大的生命力,但是c#语言第一次提供了一种机会,让你依据自己的需要选择编程风格。不过,注意:LINQ并不是对各种情况都适用,也不能代替良好的设计或实践。你可能使用LINQ编写出糟糕的代码,就像你可能编写糟糕的面向对象或过程式代码一样。其一贯的难点在于搞清楚什么时候适合使用哪种技术。
LINQ的初始版本包含许多数据域,如下所示:
•LINQ to 0bjects
•LINQ to XML
•LINQ to AD0.NET
•LINQ to SQL







点击看大图

加载中...

