C#高级编程中文第八版(高拍仪扫描件)

所需积分/C币:50 2015-07-09 15:24:16 307.51MB PDF
收藏 收藏 9
举报

C#高级编程中文第八版(高拍仪扫描件)
Christian Nagel, Bill Evjen, Jay Glynn, Karti Watson, Morgan Skinner Professional C# 2012 and. NET 4.5 E|SBN:978-1-118314425 Copyright c 2013 by John Wiley Sons, Inc. All Rights Reserved. This translation published under license 作者简介 本书中文简体字版由 Wiley Publishin,lnc.授权清华大学出版社出版。未经出版者书面许可,不得以任式 复制或抄袭本书内容。 Christian Nagel是 Microsoft区域董事、 Microsoft MVP, thinktecture的合作伙伴,CN革新技术的 拥有者,他是一位软件架构师和开发人员,为开发 Microsoft Net解决方案提供培训和咨洵服务。他 北京市版权局著作权合同登记号图字:01-20137011 具备超过25年的软件开发经验。 Christian从PDP11和 VAX/VMS系统开始其计算机生涯,熟悉各 种语言和平台。自从2000年以来,(那时NET还只是一个技术框架),他就开始使用各种NE技术 Copies of this book sold without a Wiley sticker on the cover are unauthorized and illega 构建大量NET解决方案。目前,他主要开发 Windows Store应用程序来访问 Windows azure服务。 本书封面贴有Wey公司防伪标签,无标签者不得销售。 他具备 Microsoft技术的深厚功底,编写了大量图书,并获得了 Microsoft认证培训师和专业开发人 版权所有,侵权必究。侵权举报电话:0106278298913701121933 员证书 Christian在国际会议上发表演讲(如 TechEd和 Tech Days,并创立 INETA Europe,以支持NET 用户组。通过Wb站点www.cninnovation.com和www.thinktecture.com可以联系Christian,其微博是 图书在版编目(CP数据 @christiannagel C#高级编程(第8版(美)内格尔(Nage,C)等著;李铭译.一北京:清华大学出版社,2013.0(201) NET开发经典名著) 小 ay Glynn开发软件的时间超过20年,使用 PICK Basic为PCK操作系统编写应用程序,到目前 ,他使用过 Paradox PAL and Object PAL、 Delphi、VBA、 Visual basic、C、Java和C编写软件 书名原文; Professional c#202 and NET4.5 他目前是 UL Pure Safety的高级软件工程师,编写基于Web的应用程序。 lSBN978-7-30233411-8 Morgan Skinner年轻时对 Sinclair ZX80很感兴趣,在校期间就开始了计算机生涯,当时他对教师 I.①C…Ⅱ.①内…②李…Ⅲ①C语言一程序设计Ⅳ.①TP312 编写的些代码不感兴趣,便开始用汇编语言编程。从此以后他使用各种语言和平台,包括AX宏汇 编程序、 Pascal、 Modula2、 Smalltalk、X86汇编语言、 PowerBuilder、C℃+、VB和目前的C并,自从 中国版本图书馆CP数据核字(2013)第180825号 200年发布PDC以来,他就用NET编程,而且非常喜欢NET,于是在2001年加入了 Microsoft。他现 在是一位独立的顾问。 任绢辑:军。于平 装帧设计:牛艳敏 技术编辑简介 责任校对:成风进 贵任印制:杨艳 出版发行:清华大学出版社 Dayid franson自从20世纪90年代开始,就成为网络、编程、2D和3D计算机图形领域的专 tt:http://www.tup.comcn.http://www.wqboak,com 家,他编写了2 PArtwork and3 D Modeling for Game Artists、 The Dark Sice of( me Texturing和Game 地址:北京清华大学学研大厦A座 邮编:100084 Character Design Complete 杜总机:010-62770175 邮购:010-62786544 投稿与读者服务:010-62776969, c service(e tup. tsinghua.cdu,cn Don Reamey是 TIBCO Software的构建师首席工程师,负责 TIBCO Portfire I务智能分析软 质量反馈:010-62772015, zhiliang(tup. tsinghua.edu.cn 件。在加入TBCO之前,Do在 Microsoft做了12年的软件开发工程师,其主要工作是 Sharepoint、 印刷者:滑华大学印刷厂 SharePoint Online和 InfoPath Forms Service. Don还用10年的时间为资本市场编写财务服务软件。 装订者:三河市新茂装订有限公司 Mitchel Sellers擅长使用 Microsoft技术进行软件开发。他是 lowaComputerGiurus公司的 销:全国新华书店 CEO,与世界范围内的各种公司一起工作。他是一位 Microsoft C# MVP、 Micros认证专家,还 开本:185mm×260mm即张:96.75插页:1字数:2663千字 顺次:2013年11月第1版 是P0/ essional Dot Net Nuke Module Programmig(Wmx出版社,2009)的作者. Mitchel常常在网上 印次:2014年5月第3次印刷 印数:7001~10000 撰写技术文章,也经常在用户组和会议上发言。他也是 DotNetNuke核心团队的一员,NET和 定价:148.0元 DotNetNuke开发社区的积极参与者。有关 Mitchel专业经验、认证和出版物的更多信息,可访问 htp/ mitchelsellers. com。 产品编号:050389-01 致谢 前言 非常感谢 A daobi Obi Fulton、 Maureen Spears和 Luann Rou提高了本书的可读性,非常感谢 Mary James、 Jim mintel和Wley中为出版本书提供过帮助的每个人,我还要感谢妻子和孩子支持 我的写作。你们都是我的力量源泉。 对于开发人员,把C语言及其相关联的 NET Framework环境描述为最重要的新技术一点都不 夸张。NET提供了一种环境。在这个环境中,可以开发在 Windows上运行的几乎所有应用程序, Christian Nage 而C并是专门用于 NET Framework的编程语言。例如,使用C#可以编写动态Web页面、 Windows 我想感谢妻儿支持我完成本书,我还要感谢 Wiley为出版本书付出努力的所有人。 Presentation Foundation应用程序、 XML Web服务、分布式应用程序的组件、数据库访问组件、传统 的 Windows桌面应用程序,甚或可以联机脱机运行的新型智能客户端应用程序。本书介绍NEr Jay Glynn Framework45.如果读者使用以前的版本编码,本书的一些章节就不适用,本书将标注出专用于NET Framework45的新增内容 不要被这个架构名称中的NET所迷感,认为这是一个只关注 tenet的架构。这个名称中 的NET仅强调 Microsoft相信分布式应用程序是未来的趋势,即处理过程分布在客户端和服务器 上,理解C#不仅仅是编写 Intemet或与网络能识别的应用程序的一种语言也很重要。它还提供了 一种编写 Windows平台上几乎任何类型的软件或组件的方式。另外,C#和NET都对开发人员编 写程序的方式进行了革新,更易于实现在 Windows的编程。 那么,NET和C#有什么优点? NET和C#的重要性 为了理解NET的重要性,了解一下过去18年来出现的许多 Windows技术的本质会有一定的帮 食面米 助。尽管所有 Windows操作系统在表面上看来完全不同,但从 Windows3.1(1992年引入)到 Windows 8和 Windows Server2012,在内核上都有相同的 Windows API用于 Windows桌面和服务器应用程序 在我们转而使用 Windows的新版本时,虽然AP中增加了非常多的新功能,但这是一个演化和扩展 APl的过程,并非替换它。 开发 Windows软件所使用的许多技术和架构也是这样,例如,组件对象模型( Component Object Model,OOM源自对象链接和联入( Object Linking and Embedding,OLE)。最初,因为它在很大程度 上仅把不同类型的Oce文档链接在一起,所以利用它,例如,可以把一个小型Exc电子表格放 在Word文档中。之后,它逐步演化为COM、DCOM( Distnbuted COM,分布式组件对象模型)和最 终的 是一种复杂的技术,它是几乎所有组件通信方式的基础,实现了事务处理、消 息传输服务和对象池。 Microsoft选择这种软件革新方法的原因非常明显:它关注后向兼容性。在过去的这些年中,人 们编写了大量 Windows第三方软件,如果 Microsoft每次都引入一项不遵循现有基本代码的新技术 indows就不会获得今天的成功 后向兼容性是 Windows技术的极其重要的功能,也是 Windows平台的一个长处。但它有一个 很大的缺点:每次某项技术更新换代,增加了新功能后,它都会比以前更复杂 很明显,对此必须进行改进。 Microsoft不可能一直扩展相同的开发工具和语言,总是使它们越 C#高级编程(第8版) 前言 来越复杂,既要保证能跟上最新硬件的发展步伐,又要与20世纪90年代初开始流行的 Windows产 品向后兼容。如果要得到一系列简单而专业的语言、环境和开发工具,让开发人员轻松地编写一流 ●代码共享:NET引入了程序集的概念,替代了传统的DLL,可以完美无暇地改进代码在应 的软件,就需要一个新的开端 用程序之间的共享方式,程序集是解决版本冲突的正式设备,程序集的不同版本可以并存 这就是C#和NET的作用。粗略地说,NET是一种在 Windows平台上编程的架构 增强的安全性:每个程序集还可以包含内置的安全信息,这些信息可以准确地指出谁或哪 种API。 C#是一种从头开始设计的用于NET的语言,它可以利用 NET Framework及其开发环境中的所有新 种类型的用户或进程可以调用什么类的哪些方法。这样就可以非常准确地控制用户部署的 增功能,以及在最近25年来出现的面向对象的编程方法。 程序集的使用方式。 在继续介绍前,必须先说明,后向兼容性并没有在这个演化进程中丧失。现有的程序仍可以使 对安装没有任何影响:有两种类型的程序集,分别是共享程序集和私有程序集。共享程序 用,NET也兼容现有的软件。现在,在 Windows上软件组件之间的通信几乎都使用COM实现。 集是可用于所有软件的公共库,而私有程序集只用于特殊软件,由于私有程序集完全自包 因此,NEI能够提供现有COM组件的包装器( wrapper),以便NET组件与之通信。 含,所以安装过程非常简单。没有注册表项,只需要把相应的文件放在文件系统的相应文 我们不需要学习了C#才能给NET编写代码,因为 Microsoft己经扩展了C++,还对 Visual Baisc 件夹中即可。 进行了很多改进,把它转变成了功能更强大的语言,并允许把用这些语言编写的代码用于NET环境 ●Web服务的支持:NET完全集成了对开发Web服务的支持,用户可以轻松地开发任何类 但其他这些语言都因有多年演化的遗留痕迹,并非一开始就用现在的技术来编写,导致它们不能用 型的应用程序。 于NET环境。 Vsua| Studio2012:NHT附带了一个 Visual studio2012开发环境,它同样可以很好地利 本书将介绍C#编程技术,同时提供NET体系结构工作原理的必要背景知识。我们不仅会介绍 用C++、C#、 Visual Basic2012和 ASP NET或XML进行编码。 Visual Studio2012集成了 C#语言的基础,还会给出使用各种相关技术的应用程序对应的示例,包括数据库访问、动态的Web 这个DE所有以前版本中的各种语言专用环境中的所有最佳功能。 页面、高级的图形和目录访问等 ●C#:是使用NET的一种面向对象的强大且流行的语言 Windows API自从1993年发布的 Windows NT以来一直在演化和扩展,但自从2002年以 第1章将详细讨论NEI体系结构的优点 来, NET Framework对程序编写方式进行了重大的修改,2012年又进行了一次很大的改动。每10 年就会发生这种改变吗? Windows8现在提供了一种新的APl:用于 Windows Store应用程序的 NET Framework4.5中的新增特性 Windows运行库( WinEr。这个运行库是一个本机AP(类似于 Windows API),它没有把NET运行库 作为其核心,但提供了基于NET理念的非常好的新功能。 Windows8包含这个API的第一个版本 NET Framework的第1版(10版在2002年发布,赢得了许多人的喝彩。 NET Framework20在 可用于现代模式的应用程序尽管它不基于NE,但仍可以将NET的一个子集应用于 Windows Store 2005年发布,是该架构的一个主要版本。2.0版本的主要新特性是C和运行库中对泛型的支持(为泛 应用程序,用C#编写该应用程序。这个新的运行库在未来的几年中会演化,随 Windows的末来版 型修改了Ⅱ代码)、新类和接口。NET30以20运行库为基础,引入了创建U的新方式wPF和XAML 本一起发布。本书也讨论了如何使用C#和 WinE编写 Windows Store应用程序 基于矢量的图形替代了基于像素的图形)和一个新的通信技术(WCF。NEI3.5和C#30引入了LNQ, NET的优点 这是可用于所有数据源的查询语法。 NET Framework4是该产品的另一个重要的版本,也引入了运行 前面阐述了NET的优点,但并没有说它会使开发人员的工作更易完成。本节将简要讨论NET 库的一个新版本40和C#的新版本40,提供了动态语言集成和大量用于并行编程的新库。NHET 的改进功能。 Framework4.5基于40运行库的更新版本,包含了许多重要的新功能 面向对象编程: . NET Framework和C从一开始就完全基于面向对象的原则。 对于 NET Framework的每个版本, Microsoft总是试图确保对己开发出的代码进行尽可能少的不 优秀的设计:一个基类库,它以一种非常直观的方式设计出来 兼容的更改。到目前为止, Microsoft在这方面做得很成功 语言无关性:在NET中, Visual Baisc、C#和托管C++等语言都可以编译为通用的中间语言 下面将详细描述C#2012和 NET Framework45中的一些新变化。 ( Intermediate Language),这说明,语言可以用以前没有的方式交互操作 异步编程 对动态Web页面更好的支持:虽然经典ASP具有很大的灵活性,但效率不是很高,这是 因为它使用了解释性的脚本语言,且缺乏面向对象的设计,从而导致ASP代码比较混 阻塞U1对用户并不友好,如果U不响应,用户就会不耐烦。也许读者在 Visual Studio中也有 乱。NET使用 ASP NET,为Wcb页面提供了一种集成支持。使用 ASP NET,可以编译页 这种经历,而 Visual Studio在这方面好了许多,在许多情形下响应得更快 面中的代码,这些代码还可以使用NET能识别的高级语言来编写,如C#或 Visual Basic NET Framework总是提供方法的异步调用。但是,使用同步方法比调用其异步变体容易得多,这 2010·NET现在还添加了对最新Web技术的重要支持,如Ajax和 jQuery 在C#50版本中有了改变。异步编程与编写同步程序一样容易。新的C*关键字基于自从NET40以 高效的数据访问:一组NET组件,统称为 ADO NET,提供了对关系数据库和各种数据源 来就有的NET并行库,现在该语言提供了高效功能 的高效访问。这些组件也可用于访问文件系统和目录,尤其是,NET内置了XML支持, 可以处理从非 Windows平台导入或导出的数据 C高毁编程(第8版) Windows Store应用程序和 Windows运行库 CString(WTL版本)、 wchar t'”、 OLECHAR·等 Windows Store应用程序可以使用Cx、 Wind运行库和 NET Framework的一个子集编写 现在进入NET时代一种全新的环境,它对这两种语言都进行了新的扩展, Micros给C+ Windows运行库是一个新的本机AP,提供了类似于NET的类、方法、属性和事件。使用语言投射 添加了许多 Microsoft专用的关键字,并把 Visual Baisc演变为 isual Baisc2012,保留了一些基本的 功能,改善了NET运行库。在NET45中,NET40运行库进行了就地更新。 Visual Baisc语法,但在设计上完全不同于原始 Visual Basic,从实际应用的角度来看, Visual baisc2012 数据访问的改善 是一种新语言 在这里, Microsoft决定给开发人员提供另一个选择专门用于NET,具有新起点的一种语言, ADO. NET Entity Framework提供了重要的新功能,其版本从NET40的40改为NET45的 即C#, Microsoft在正式场合把C描述为一种简单、现代、面向对象、类型非常安全、派生自C和 50.NE40发布后, Entity Framework已经在41、42和43中接受了更新。现在新功能,例如 C+的编程语言。大多数独立的评论员对C的描述改为“派生自C、C+和Java”,这种描述在技术 Code First、空间类型、使用枚举、表值功能等,都可以使用了 上非常准确,但没有表达出该语言的真正优点。从语法上看,C样非常类似于C++和Java,许多关键 WPF的改善 字都相同,C并也使用类似于C艹和Java的块结构,并用花括号({)来标记代码块,用分号分隔各行 语句。对C#代码的第一印象是它非常类似于C+或Ja代码。但在这些表面的类似性后面,C样学 wPF进行了改进,以编写 Windows桌面应用程序。现在可以在非UI线程中填充集合,功能区 习起来要比C艹容易得多,但比Java难一些。其设计比其他语言更适合现代开发工具,它同时具有 控件现在是架构的一部分,通过事件的弱引用也更容易实现,数据验证可以用 INotify DataErrorlnfo Visual Basic的易用性,以及C++的高性能、低级内存访问。C#包括以下一些功能: 接口异步完成:实时绘图功能可以方便地动态排序、分组修改了的数据。 ·完全支持类和面向对象编程,包括接口和实现继承、虚函数和运算符重载 ASP.NET MVC 致且定义完善的基本类型集。 对自动生成XML文档的内置支持。 Visual Studio2010包含 ASPNET MVC20 Visual Studio2012发布后,就可以使用 ASPNET MVO 自动清理动态分配的内存 4.0了。 ASPNET MVC提供了许多开发人员期待的、使用模型-视图-控制器来创建 ASPNET应用 可以用用户定义的属性来标记类或方法。这可以用于文档,对编译有一定的影响(例如,把 程序的方式, ASPNET MVC在开发人员构建的应用程序中提供了可测试性、灵活性和可维护性。 方法标记为只在调试版本中编译)。 ASPNET MVC不是 ASPNET Web窗体的替代品,而只是构建应用程序的另一种方式。 可以完全访问NET基类库,并易于访问 Windows API(如果实际需要它,这就不常见)。三 可以使用指针和直接访问内存,但C#语言可以在没有它们的条件下访间内存。 C#的优点 以 Visual Basic的风格支持属性和事件。 ●改变编译器选项,可以把程序编译为可执行文件或NET组件库,该组件库可以用与 ActiveX C在某种程度上可以看作是NET面向 Windows环境的一种编程语言,在过去的15年中, 控件COM组件)相同的方式由其他代码调用 Microsoft给 Windows和 windows AP添加了许多功能, Visual Baisc2010和C++也进行了许多扩展 C#可以用于编写 ASP. NET动态Web页面和 XML Web服务 虽然 Visual Baisc和C++最终已成为非常强大的语言,但这两种语言也存在问题,因为它们保留了 应该指出,对于上述大多数功能, Visual basic2012和 Managed C++也具备。事实上,虽然C岸 原来的一些遗留内容 从 一开始就使用NET,但对NET功能的支持不仅更完整,而且在比其他语言更合适的语法环境中 对于 Visual Basic6及其早期版本,它的主要优点是很容易理解,许多编程工作都很容易完成, 提供了这些功能。C语言本身非常类似于Java,但其中有一些改进,尤其是,Java并不应用于NET 环境。 从很大程度上对开发人员隐藏了 Windows API和COM组件结构的详细信息。其缺点是因为 Visual Basic从来没有实现真正意义上的面向对象,所以大型应用程序很难分解和维护。另外,因为 Visual 在结束这个主题前,还要指出C#的两个局限性。一方面是该语言不适用于编写时间急迫或性能 Basic的语法继承自BASC的早期版本(BASC主要是为了让刚入门的程序员更容易理解,而不是为 非常高的代码,例如一个要占用1000或1050个机器周期的循环,并在不需要这些资源时,立即清 了编写大型商业应用程序),所以不能真正成为结构良好或面向对象的编程语言。 理它们。在这方面,C+可能仍是所有低级语言中的佼仪者,另一方面是C缺乏性能极高的应用程 另一方面,C++基于ANSC+语言定义。它与ANSI不完全兼容,因为 Microsoft在ANSl定义 序所需要的关键功能,包括能够指定那些保证在代码的特定地方运行的内联函数和析构函数。但 这类应用程序非常少。 标准化之前编写其C++编译器,但它已经相当接近,但是,这导致了两个问题。首先, ANSI C+ 是在十几年前的技术条件下开发的,因此它不支持现在的概念(如 Unicode字符串和生成XML文档), 某些古老的语法结构是为以前的编译器设计的(如成员函数的声明和定义是分开的)。其次, Microsoft 编写和运行C#代码的环境 同时还试图把C艹+演变为一种用于在 Windows上执行高性能任务的语言,为此不得不在语言中添加 大量 Microsoft专用的关键字和各种库。其结果是在 Windows上,该语言非常杂乱。让C+开发人 NET Framework4.5运行在 Windows Vista78和服务器操作系统 Windows Server2008、2008 员描述字符串有多少种定义就可以证明这一点:char、 LPTSTR、 string、 CString(MFC版本) 和2012上。要使用NET编写代码,需要安装NET45SDK。 C#高级编程(第8版) 此外,除非要使用文本编辑器或其他第三方开发环境来编写C代码,否则用户几乎肯定也希望 使用 Visual Studio2012。运行托管代码不需要安装完整的SDK,但需要NET运行库。需要把NEr 如何下载本书的示例代码 运行库和代码分布到还没有安装它的客户端上。 本书内容 在读者学习本书中的示例时,可以手工输入所有的代码,也可以使用本书附带的源代码文件。本书 使用的所有源代码都可以从本书合作站点hp/WWwWTOX.C∞om和htp/www.tupwk.com.cn/downpage上 下载。登录到站点hp/www.wrox.com上,使用Sach工具或书名列表就可以找到本书。接着单击本 本书首先在第1章介绍NET的整体体系结构,给出编写托管代码所需要的背景知识,此后本书 书细目页面上的 Download Code链接,就可以获得所有的源代码。 分几部分介绍C#语言及其在各个领域中的应用。 注释 第I部分—C#语言 许多图书的书名都很相似,所以通过ISBN查找本书是最简单的,本书的ISBN是 本部分给出C#语言的背景知识。尽管这一部分假定读者是有经验的编程人员,但它没有假设读 978-1-118-31442-5, 者拥有任何特殊语言的知识。首先介绍C的基本语法和数据类型,再介绍C的面向对象功能,之 后是C#中的一些高级编程主题 在下载了代码后,只需用自己喜欢的解压缩软件对它进行解压缩即可。另外,也可以进入 htp:/www.wrox.com/dynamic/books/download.aspx上的Wrox代码下载主页,查看本书和其他Wox 第Ⅱ部分— Visual Studio 图书的所有代码 本部分介绍全世界C*开发人员都使用的主要IDE: Visual Studio012.本部分的两章探讨使用工 具构建基于 NET Framework4.5的应用程序的最佳方式,另外,本部分还讨论项目的部署。 勘力误表 第Ⅲ部分—基础 本部分介绍在NET环境中编程的规则。特别是安全性、线程、本地化、事务、构建 Windows 尽管我们已经尽了各种努力来保证文章或代码中不出现错误,但是错误总是难免的,如果你在 服务的方式,以及将自己的库生成为程序集的方式等主题。其中一部分介绍如何使用平台调用和 本书中找到了错误,例如拼写错误或代码错误,请告诉我们,我们将非常感激。通过勘误表,可以 COM交互操作功能,与本地代码和程序集进行交互操作。本部分还讨论了 Windows运行库与NET 让其他读者避免受挫,当然,这还有助于提供更高质量的信息。 的区别,以及如何编写 Windows8模式的程序 要在网站上找到本书的勘误表,可以登录hp/www.wroxCom,通过Search工具或书名列表查 找本书,然后在本书的细目页面上,单击 Book Errata链接,在这个页面上可以查看Wmox编辑已提 第Ⅳ部分—一数据 交和粘贴的所有勘误项,完整的图书列表还包括每本书的勘误表,网址是www.wrox.com/misc-pages 本部分介绍如何使用 ADO. NET访问数据库,学习 ADO. NET Entity Framework我们可以使 booklist shtm。 用核心 ADONET获得最佳性能,而使用 ADO. NET Entity Framework可以方便地把对象映射到关 如果在Bookerma页面上没有看到你找出的错误,请进入www.worx.com/contact/techsupportshtml 系上。还讨论了现在可以使用的 Model First、 Database First和 Code First编程模型。我们还详细说 填写表单,发电子邮件,我们就会检查你的信息,如果是正确的,就在本书的勘误表中粘贴一个消 明NET对XML的支持,以及如何使用LINQ查询XML数据源。 息,我们将在本书的后续版本中采用。 第V部分—显示 本部分首先阐述如何编写基于 Windows Presentation Foundation的应用程序,介绍不同的控件类 02p.wrox.com 型、样式、资源和数据绑定,以及如何创建固定的和流畅的文档并打印出来。本部分还会介绍如何 创建 Windows Store应用程序,使用图片生成更漂亮的U1、网格,以及与其他应用程序交互操作的 PP邮件列表是为作者和读者之间的讨论而建立的。读者可以在p2 p wrox. com上加入P2P论坛。 协定。最后讨论 ASPNET提供的许多新功能,用 ASPNET Web窗体创建web站点、 ASPNET MVC 该论坛是一个基于Web的系统,用于传送与Wox图书相关的信息和相关技术,与其他读者和技术 和动态数据 用户交流。该论坛提供了订阅功能,当论坛上有新帖子时,会给你发送你选择的主题。Wmox作者、 编辑和其他业界专家和读者都会在这个论坛上进行讨论。 第Ⅵ部分—通信 在htp/p2p. wrox. com上有许多不同的论坛,帮助读者阅读本书,在读者开发自己的应用程序 这一部分介绍通信,主要论述独立于平台使用 Windows Communication Foundation(WCF)进行通 时,也可以从这个论坛中获益。要加入这个论坛,必须执行下面的步骤: 信的服务,以及使用WCF数据服务访问数据。通过消息队列,揭示了断开连接的异步通信。本部分 (1)进入p2 o wrox con,单击 Register链接 还介绍如何利用 Windows Workflow Foundation(WF)和对等网络。 (2)阅读其内容,单击Agre按钮 (3)提供加入论坛所需的信息及愿意提供的可选信息,单击 Submit按钮 C#高级编程(第8版) (4)然后就可以收到封电子邮件,其中的信息描述了如何验证账户,完成加入过程 提示 不加入P2P也可以阅读论坛上的信息,但只有加入论坛后,才能发送自己的信息, 目录 加入论坛后,就可以发送新信息,回应其他用户的帖子。可以随时在Web上阅读信息。如果希 望某个论坛给自己发送新信息,可以在论坛列表中单击该论坛对应的 Subscribe to this Forum图标。 对于如何使用WoxP2P的更多信息,可阅读P2PFAQ,了解论坛软件的工作原理,以及许多 针对P2P和Wox图书的常见问题解答。要阅读FAQ,可以单击任意P2P页面上的FAQ链接 第Ⅰ部分C#语言 第2章核心C# 22 2.1C#基础 第1章NET体系结构 2 1.1C#与NET的关系 22第一个C#程序 1.2公共语言运行库 221代码 222编译并运行程序 12.1平台无关性 22,3详细介绍…… 24 1.2.2提高性能 23变量 123语言的互操作性…… 23.1变量的初始化 1.3中间语言………………………5 232类型推断 …27 131面向对象和接口的支持……6 233变量的作用域一 1.3.2不同的值类型和引用类型…6 2.34常量 1.3.3强数据类型化 24预定义数据类型… 13.4通过异常处理错误……………11 2.4.1值类型和引用类型………31 1.3.5特性的使用……… ……12 242CIS类型 1.4程序集……………………12 243预定义的值类型 33 14.1私有程序集……………13 244预定义的引用类型 142共享程序集……………132.5流控制…………… ……37 14.3反射 2.51条件语句 …………37 1.44并行编程 2.52循环 1.4.5异步编程……………………14 2.53跳转语句 1.5 NET Framework类……14。26枚举……… 45 16名称空间……………15 2.7名称空间… 1.7用C#创建NET应用程序……16 271 using语句 7.1创建 ASP NET应用程序……16 2.72名称空间的别名 1.72使用wPF 18 28 MainO方法 1.7.3 Windows8应用程序………18 2.8.1多个ManO方法” 49 1.74 Windows服务 1 8 2.8.2给Main0方法传递参数“…50 1.7.5WCF…… …19 29有关编译C#文件的更多内容…51 1.7.6 Windows WF" 19 2.10控制台O…………… 53 1.8C#在NET企业体系结构中 2.11使用注释 的作用……………………19 2.11.1源文件中的内部注释………54 1.9小结………………………………20 2.11.2XML文档……… 55 C#高级编程(第8版) 目录 2.12C预处理器指令…… 43.2隐藏方法… 2.12.1 define和 undef…………57 433调用函数的基类版本… 62简单数组……………138 7.6.2多重类型强制转换……189 2.12.2瓶f、#lif、ele和ndif…58 4.34抽象类和抽象函数……………99 62.1数组的声明………………138 7.7小结 ………193 2.12.3# waming和#eror 43.5密封类和密封方法 622数组的初始化… 138 436派生类的构造函数…………100 623访问数组元素 第8章委托、 Lambda表达式 2.124 #region和 #eregion…59 139 44修饰符…… 624使用引用类型 2.12.5line……………:60 ………105 140 和事件………194 6.3多维数组… 141 1引用方法… 2.12.6 #pragma 60 44.1可见性修饰符……………105 64锯齿数组……142 82委托…… 2.13C#编程规则 ……195 442其他修饰符… ………106 8.2.1声明委托 4.5接口………………………106 6.5Aray类 ………143 195 2.13.1关于标识符的规则 8.22使用委托… 196 2.13.2用法约定 6 65.1创建数组……… 143 45.1定义和实现接口 107 2.14小结 652复制数组 144 823简单的委托示例 67 452派生的接口 l10 653排序 145 8.2.4 Action<T>j Func<T> 第3章对象和类型-……68 46小结 112 6.6数组作为参数 委托… 201 3创建及使用类…68第5章泛型………………113 66.1数组协变… 149 8.25 BubbleSorter示例 20 3.2类和结构 …………6951泛型概述………………………13 60.2 Array Segment<T>………149 826多播委托… 204 3.3类………… ………659 51.1性能………………………114 6.7枚举………… ………50 82.7匿名方法 208 3.3.1数据成员…… 8.3 Lambda表达式……………209 70 5.12类型安全……………115 6.7.1 IEnumerator接口… 150 3.3.2函数成员…… 513二进制代码的重用………115 6.7.2 foreach语句 l51 8.3.1参数… 209 3.33只读字段 673yied语句 151 832多行代码……… 210 54代码的扩展………一 116 34匿名类型……… 68元组 833闭包 210 ………83 51.5命名约定 ………116 3.5结构………………………84 52创建泛型类… 8.34使用 foreach语句的闭包…2l1 …………116 69结构比较… 610小结……………………160 4事件…………………… 212 35.1结构是值类型…… 85 53泛型类的功能……………120 841事件发布程序 212 3.52结构和继承 53.1默认值…………………“121 第7章运算符和类型强制转换……161 842事件侦听器 214 3.5.3结构的构造函数 86 3.2约束 …………122 7.1运算符和类型转换 16l 3.6弱引用 843弱事件 215 ………………86 53.3继承 124 7.2运算符 161 8.5小结 3.7部分类… 219 88 534静态成员 ……125 7.2.1运算符的简化操作…163 38静态类 89 54泛型接口………… ……125 …167 第9章字符串和正则表达式 220 72.2运算符的优先级 3.9Objc类……… 9 54.1协变和抗变 7.3类型的安全性 168 9.1 System. String类 221 3.9.1 System. Object0方法 90 542泛型接口的协变 222 127 73.1类型转换… 168 9.1.1创建字符串 392 ToString0方法… 54,3泛型接口的抗变 …128 732装箱和拆箱 172 9.12 String Builder成员“225 3.10扩展方法 5.5泛型结构 ……129 9.1.3格式字符串-……“…“……226 3.11.小结… 7.4比较对象的相等性 93 5.6泛型方法 9,2正则表达式 231 132 74.1比较引用类型的相等性172 第4章继承 561泛型方法示例………132 92.1正则表达式概述 231 74.2比较值类型的相等性 173 4.1继承 9.2.2 RegularExpressions Playaround ……94 562带约束的泛型方法…133 7.5运算符重载 ………174 例 232 4.2继承的类型… ……94 563带委托的泛型方法…134 7.5.1运算符的工作方式 175 92.3显示结果 235 421实现继承和接口继承…94 564泛型方法规范 135 7.52运算符重载的示例: 924匹配、组合和捕获 422多重继承…………95 57小结 136 Vector结构……176 9.3小结…………………………238 423结构和类 …95第6章数组…………………137 7.6用户定义的类型强制转换…182 4.3实现继承…………………95 61同一类型和不同类型的 761实现用户定义的类型 第10章集合……………………………239 43.1虚方法 10.1概述……………………239 多个对象 184 …………137 强制转换 XIII C#高级编程(第8版) 目录 10.2集合接口和类型 …240 1126分组 ……………302 1334同步上下文…………349 10.3列表 241 112.7对嵌套的对象分组……303 1532 Type View示例……………392 133.5使用多个异步方法…349 10.3.1创建列表 242 112.8内连接 304 1533 Assembly类 393 13.36转换异步模式 …350 15.34完成 Whats New Attributes 10.3.2只读集合 251 1.2.9左外连接………… 134错误处理 …351 112.10组连接… 示例 395 10.4队列… …………51 134.1异步方法的异常处理…352 10.5栈 255 112.1集合操作…………309 154小结…………… 398 1342多个异步方法的 10.6链表… 11.2.12合并… ……310 异常处理…… 第16章错误和异常 …399 10.7有序列表…………………262 112.13分区 …311 13.4.3 Aggregate Exception类…353 16.1简介… 10.8字典… 263 112.14聚合操作符… 312 13.5取消… ………353 162异常类 400 10.8.1键的类型… 112.15转换操作符……………314 1351开始取消任务 163捕获异常 …401 1082字典示例 …265 112.16生成操作符 ……315 13.52使用框架特性取消任务…354 16.3.1实现多个 catch块……403 1083 Lookup类 26913并行LNQ ……316 1353取消自定义任务 355 1632在其他代码中捕获异常…407 1084有序字典 270 11.3.1并行查询…………316 13.6小结… ……355 163.3 System Exception属性…407 10.9集………… ………270 1132分区器……………317 16.34没有处理异常时所 10.10可观察的集合………………272 113.3取消 第14章内存管理和指针 356 发生的情况 408 10.11位数组 273 114表达式树 318 14.1内存管理 ……356 1635嵌套的try块 408 10.11.1 BitArray类… 15LINQ提供程序 320 14.2后台内存管理 356 164用户定义的异常类……………410 10.11.2 BitVector32结构……276 1.6小结 357 ………321 142.1值数据类型 64.1捕获用户定义的异常…411 10.12并发集合 278 1422引用数据类型 358 1642抛出用户定义的异常…412 10.12.1创建管道 20第12章动态语言扩展…………“322 1423垃圾回收 9 1643定义用户定义的异常类415 0.12.2使用 Blocking 12.1DLR……………………322 14.3释放非托管的资源……361 16.5调用者信息 417 12.2 dynamic类型 323 1431析构函数……… 361 166小结………… Collection 418 10.12.3使用 Concurrent 12.3包含 DLR ScriptRuntime…327 14.3.2 IDisposable接口……362 0第Ⅱ部分 Visual Studio Dictionary 283 124 Dynamic Object和 1433实现 IDisposable接口和 10.124完成管道 ExpandoObiect……… 330 析构函数363第17章 Visual Studio2012 420 10.13性能 ……286 12.4.1 DynamicObject 330 144不安全的代码…… 365 17.1用 Visual Studio2012进行 10.14小结… …288 12.4.2 ExpandoObject 332 144.1用指针直接访问内存…365 工作…… 420 12.5小结 …333 1442指针示例 17.1.1项目文件的改进 423 第11章L|NQ… ……289 Pointer Playground374 17.1.2 Visual Studio的版本…423 11LNQ概述……239第13章异步编程…34 1443使用指针优化性能…378 17.1.3 Visual Studio设置 424 111.1列表和实体 289 异步编程的重要性……334 14.5小结………… 381 17,2创建项目…… ……424 1112LINQ查询………293 13.2异步模式…… …335 17.2.1面向多个版本的 111.3扩展方法 1321同步调用………342 第15章反射… ……382 294 NET Framework 425 11..4推迟查询的执行 295 13.22异步模式 …343 15.1在运行期间处理和检查代码382 17.22选择项目类型 427 112标准的查询操作符…………297 1323基于事件的异步模式…344 15.2自定义特性……………383 17,3浏览并编写项目……………430 112.1筛选 299 13.24基于任务的异步模式…345 152.1编写自定义特性…383 17.3.1 Solution Explorer 430 11.2.2用索引筛选 ……299 133异步编程的基础 347 1522自定义特性示例: 1732用代码编辑器进行工作…436 112.3类型筛选 300 1331创建任务……………347 Whats New Attributes……386 17.3.3学习和理解其他窗口……438 112.4复合的from子句 300 1332调用异步方法… 348 153反射 ……389 1734排列窗口 112.5排序… 301 1333延续任务 1531 System, Type类…389

...展开详情
试读 127P C#高级编程中文第八版(高拍仪扫描件)
立即下载 低至0.43元/次 身份认证VIP会员低至7折
    一个资源只可评论一次,评论内容不能少于5个字
    xiaofeng778 很不錯的書
    2020-03-03
    回复
    apacheii 阅读价值不高,图片内容看不太清楚
    2018-06-02
    回复
    javandy 可以使用,谢谢分享~
    2018-04-11
    回复
    yanyi1210 啥玩意,都看不清楚
    2017-12-15
    回复
    kszbs 感谢分享,感谢楼主!
    2017-08-30
    回复
    olacc 不错,谢谢分享
    2017-08-18
    回复
    chenghd123 文件有点大。不过对我用处很大,谢谢分享
    2017-01-17
    回复
    lsyx71387 楼主好人呀,只是文件太大了,不过不影响,不错支持!
    2016-10-25
    回复
    zsawing 下错资源,不过做参考也很好。
    2016-09-03
    回复
    utxf0217 东西不错,感谢分享
    2016-05-25
    回复
    img
    232frb
    • 至尊王者

      成功上传501个资源即可获取

    关注 私信 TA的资源

    上传资源赚积分,得勋章
    最新推荐
    C#高级编程中文第八版(高拍仪扫描件) 50积分/C币 立即下载
    1/127
    C#高级编程中文第八版(高拍仪扫描件)第1页
    C#高级编程中文第八版(高拍仪扫描件)第2页
    C#高级编程中文第八版(高拍仪扫描件)第3页
    C#高级编程中文第八版(高拍仪扫描件)第4页
    C#高级编程中文第八版(高拍仪扫描件)第5页
    C#高级编程中文第八版(高拍仪扫描件)第6页
    C#高级编程中文第八版(高拍仪扫描件)第7页
    C#高级编程中文第八版(高拍仪扫描件)第8页
    C#高级编程中文第八版(高拍仪扫描件)第9页
    C#高级编程中文第八版(高拍仪扫描件)第10页
    C#高级编程中文第八版(高拍仪扫描件)第11页
    C#高级编程中文第八版(高拍仪扫描件)第12页
    C#高级编程中文第八版(高拍仪扫描件)第13页
    C#高级编程中文第八版(高拍仪扫描件)第14页
    C#高级编程中文第八版(高拍仪扫描件)第15页
    C#高级编程中文第八版(高拍仪扫描件)第16页
    C#高级编程中文第八版(高拍仪扫描件)第17页
    C#高级编程中文第八版(高拍仪扫描件)第18页
    C#高级编程中文第八版(高拍仪扫描件)第19页
    C#高级编程中文第八版(高拍仪扫描件)第20页

    试读已结束,剩余107页未读...

    50积分/C币 立即下载 >