c#高级编程第9版pdf 中文完整版
分享到:
c#高级编程第9版由微软开发技术代言人Christian.Nagel编著,小编在网上找了很久,终于有了这个资源,今天小编就为各位提供最新的c高级编程教程,这是一本关于如何学习c#语言的书籍,3322软件站提供c高级编程第10版中文版下载旨在帮助读者更新、提高用C#2012和.NET4.5编写Windows应用程序、Web应用程序、Windows8样式应用程序的技巧。C#是编写.NET应用程序的一种语言,c#高级编程第9版适合于希望提高编程技巧的、有经验的C#程序员,也适用于刚开始使用C#的专业开发人员。《C#高级编程(第9版):C#5.0&.NET4.5.1》探讨了Visual.Studio2013和.net.framework4.5.1、新的测试驱动开发和并发编程功能。所有示例的都可以下载,读者可以立即开始编写Windows桌面应用程序、Windows Store应用程序和ASP.NET Web应用程序。需要的朋友欢迎来3322软件站免费下载阅读。
主要内容
◆通过NET.Core和C#6的增强功能,重新塑造了.NET平台,包括新增的.NET编译器平台
◆展示了如何使用新的Visual.Studio工具和用于ASP.NET.Core.1.0、ASP.NET.MVC、Web.API、WPF和Universal Windows Platform的模板
◆ 介绍允许应用程序在Windows、Linux和OS X上运行的.NET Core框架,还囊括了任务和并行编程,访问文件系统,以及网络堆栈
◆演示了如何使用ASP.NET.MVC6和WebAPI创建Web应用程序,以及利用SignalR和WebHooks的推送通知
◆ 介绍专业开发功能,例如单元测试,通过MVVM模式在WPF和Universal Windows Platform之间共享代码
开 本:16开
纸 张:胶版纸
包 装:平装-胶订
是否套装:否
国际标准书号ISBN:9787302380023
丛书名:.NET 开发经典名著
正文语种:中文
Jay Glynn开发软件的时间超过20年,使用PICK Basic为PICK操作系统编写应用程序。到目前为止,他使用过Delphi、VBA、Visual Basic、C、Java和C#编写软件。他目前是VGT的高级软件工程师,编写基于Web的应用程序。
Morgan Skinner是一位自由顾问,他在开始自己的顾问生涯之前,在Microsoft工作了将近10年。
第1章.NET体系结构
1.1C#与.NET的关系
1.2公共语言运行库
1.2.1平台无关性
1.2.2提高性能
1.2.3语言的互操作性
1.3中间语言
1.3.1面向对象和接口的支持
1.3.2不同的值类型和引用类型
1.3.3强数据类型化
1.3.4通过异常处理错误
1.3.5特性的使用
1.4程序集
1.4.1私有程序集
1.4.2共享程序集
1.4.3反射
1.4.4并行编程
1.4.5异步编程
1.5.NETFramework类
1.6名称空间
1.7用C#创建.NET应用程序
1.7.1创建ASP.NET应用程序
1.7.2使用WPF
1.7.3WindowsStore应用程序
1.7.4Windows服务
1.7.5WCF
1.7.6WindowsWF
1.8C#在.NET企业体系结构中的作用
1.9小结
第2章核心C#
2.1C#基础
2.2第一个C#程序
2.2.1代码
2.2.2编译并运行程序
2.2.3详细介绍
2.3变量
2.3.1变量的初始化
2.3.2类型推断
2.3.3变量的作用域
2.3.4常量
2.4预定义数据类型
2.4.1值类型和引用类型
2.4.2CTS类型
2.4.3预定义的值类型
2.4.4预定义的引用类型
2.5流控制
2.5.1条件语句
2.5.2循环
2.5.3跳转语句
2.6枚举
2.7名称空间
2.7.1using语句
2.7.2名称空间的别名
2.8Main()方法
2.8.1多个Main()方法
2.8.2给Main()方法传递参数
2.9有关编译C#文件的更多内容
2.10控制台I/O
2.11使用注释
2.11.1源文件中的内部注释
2.11.2XML文档
2.12C#预处理器指令
2.12.1#define和#undef
2.12.2#if、#elif、#else和#endif
2.12.3#warning和#error
2.12.4#region和#endregion
2.12.5#line
2.12.6#pragma
2.13C#编程规则
2.13.1关于标识符的规则
2.13.2用法约定
2.14小结
第3章对象和类型
3.1创建及使用类
3.2类和结构
3.3类
3.3.1数据成员
3.3.2函数成员
3.3.3只读字段
3.4匿名类型
3.5结构
3.5.1结构是值类型
3.5.2结构和继承
3.5.3结构的构造函数
3.6弱引用
3.7部分类
3.8静态类
3.9Object类
3.9.1System.Object()方法
3.9.2ToString()方法
3.10扩展方法
3.11小结
第4章继承
4.1继承
4.2继承的类型
4.2.1实现继承和接口继承
4.2.2多重继承
4.2.3结构和类
4.3实现继承
4.3.1虚方法
4.3.2隐藏方法
4.3.3调用函数的基类版本
4.3.4抽象类和抽象函数
4.3.5密封类和密封方法
4.3.6派生类的构造函数
4.4修饰符
4.4.1可见性修饰符
4.4.2其他修饰符
4.5接口
4.5.1定义和实现接口
4.5.2派生的接口
4.6小结
第5章泛型
5.1泛型概述
5.1.1性能
5.1.2类型安全
5.1.3二进制代码的重用
5.1.4代码的扩展
5.1.5命名约定
5.2创建泛型类
5.3泛型类的功能
5.3.1默认值
5.3.2约束
5.3.3继承
5.3.4静态成员
5.4泛型接口
5.4.1协变和抗变
5.4.2泛型接口的协变
5.4.3泛型接口的抗变
5.5泛型结构
5.6泛型方法
5.6.1泛型方法示例
5.6.2带约束的泛型方法
5.6.3带委托的泛型方法
5.6.4泛型方法规范
5.7小结
第6章数组
6.1同一类型和不同类型的多个对象
6.2简单数组
6.2.1数组的声明
6.2.2数组的初始化
6.2.3访问数组元素
6.2.4使用引用类型
6.3多维数组
6.4锯齿数组
6.5Array类
6.5.1创建数组
6.5.2复制数组
6.5.3排序
6.6数组作为参数
6.6.1数组协变
6.6.2ArraySegment<;
T>;
6.7枚举
6.7.1IEnumerator接口
6.7.2foreach语句
6.7.3yield语句
6.8元组
6.9结构比较
6.10小结
第7章运算符和类型强制转换
7.1运算符和类型转换
7.2运算符
7.2.1运算符的简化操作
7.2.2运算符的优先级
7.3类型的安全性
7.3.1类型转换
7.3.2装箱和拆箱
7.4比较对象的相等性
7.4.1比较引用类型的相等性
7.4.2比较值类型的相等性
7.5运算符重载
7.5.1运算符的工作方式
7.5.2运算符重载的示例:Vector结构
7.6用户定义的类型强制转换
7.6.1实现用户定义的类型强制转换
7.6.2多重类型强制转换
7.7小结
第8章委托、lambda表达式和事件
8.1引用方法
8.2委托
8.2.1声明委托
8.2.2使用委托
8.2.3简单的委托示例
8.2.4Action<;T>;和Func<;T>;委托
8.2.5BubbleSorter示例
8.2.6多播委托
8.2.7匿名方法
8.3lambda表达式
8.3.1参数
8.3.2多行代码
8.3.3闭包
8.3.4使用foreach语句的闭包
8.4事件
8.4.1事件发布程序
8.4.2事件侦听器
8.4.3弱事件
8.5小结
第9章字符串和正则表达式
9.1System.String类
9.1.1创建字符串
9.1.2StringBuilder成员
9.1.3格式字符串
9.2正则表达式
9.2.1正则表达式概述
9.2.2RegularExpressionsPlayaround示例
9.2.3显示结果
9.2.4匹配、组合和捕获
9.3小结
第10章集合
10.1概述
10.2集合接口和类型
10.3列表
10.3.1创建列表
10.3.2只读集合
10.4队列
10.5栈
10.6链表
10.7有序列表
10.8字典
10.8.1键的类型
10.8.2字典示例
10.8.3Lookup类
10.8.4有序字典
10.9集
10.10可观察的集合
10.11位数组
10.11.1BitArray类
10.11.2BitVector32结构
10.12不变的集合
10.13并发集合
10.13.1创建管道
10.13.2使用BlockingCollection
10.13.3使用ConcurrentDictionary
10.13.4完成管道
10.14性能
10.15小结
第11章LINQ
11.1LINQ概述
11.1.1列表和实体
11.1.2LINQ查询
11.1.3扩展方法
11.1.4推迟查询的执行
11.2标准的查询操作符
11.2.1筛选
11.2.2用索引筛选
11.2.3类型筛选
11.2.4复合的from子句
11.2.5排序
11.2.6分组11.2.7对嵌套的对象分组
11.2.8内连接
11.2.9左外连接
11.2.10组连接
11.2.11集合操作
11.2.12合并
11.2.13分区
11.2.14聚合操作符
11.2.15转换操作符
11.2.16生成操作符
11.3并行LINQ
11.3.1并行查询
11.3.2分区器
11.3.3取消
11.4表达式树
11.5LINQ提供程序
11.6小结
第12章动态语言扩展
12.1DLR
12.2dynamic类型
12.3包含DLRScriptRuntime
12.4DynamicObject和ExpandoObject12.4.1DynamicObject
12.4.2ExpandoObject
12.5小结
第13章异步编程.....
第14章内存管理和指针.....
第15章反射......
第16章错误和异常
16.1简介
16.2异常类
16.3捕获异常
16.3.1实现多个catch块
16.3.2在其他代码中捕获异常
16.3.3System.Exception属性
16.3.4没有处理异常时所发生的情况
16.3.5嵌套的try块
16.4用户定义的异常类
16.4.1捕获用户定义的异常
16.4.2抛出用户定义的异常
16.4.3定义用户定义的异常类
16.5调用者信息
16.6小结
第Ⅱ部分VisualStudio
第Ⅲ部分基础
第Ⅳ部分数据
对于开发人员,把C#语言及其相关联的.NET.Framework环境描述为最重要的新技术一点都不夸张。.NET提供了一种环境。在这个环境中,可以开发在Windows上运行的几乎所有应用程序,而C#是专门用于.NET.Framework的编程语言。例如,使用C#可以编写动态Web页面、Windows.Presentation.Foundation应用程序、XMLWeb服务、分布式应用程序的组件、数据库访问组件、传统的Windows桌面应用程序,甚或可以联机/脱机运行的新型智能客户端应用程序。本书介绍.NET Framework4.5.1。如果读者使用以前的版本编码,本书的一些章节就不适用。本书将标注出专用于.NET Framework 4.5和4.5.1的新增内容。
不要被这个架构名称中的.NET所迷惑,认为这是一个只关注Internet的架构。这个名称中的.NET仅强调Microsoft相信分布式应用程序是未来的趋势,即处理过程分布在客户端和服务器上。理解C#不仅仅是编写Internet或网络识别应用程序的一种语言也很重要。它还提供了一种编写Windows平台上几乎任何类型的软件或组件的方式。另外,C#和.NET都对开发人员编写程序的方式进行了革新,更易于实现在Windows上的编程。
那么,.NET和C#有什么优点?
.NET和C#的重要性
为了理解.NET的重要性,就一定要了解过去20年来出现的许多Windows技术的本质。尽管所有Windows操作系统在表面上看来完全不同,但从Windows3.1(1993年引入)到Windows.8.1和Windows.Server.2012R2,在内核上都有相同的Windows API用于Windows桌面和服务器应用程序。在我们转而使用Windows的新版本时,虽然API中增加了非常多的新功能,但这是一个演化和扩展API的过程,并非替换它。
在Windows 8中,操作系统的主API被Windows运行库替代。但这个运行库仍部分基于Windows API。
开发Windows软件所使用的许多技术和架构也是这样。例如,组件对象模型(Component.Object.Model,COM)源自对象链接和嵌入(Object.Linking.and.Embedding,OLE)。最初,因为它在很大程度上仅把不同类型的Office文档链接在一起,所以利用它,例如,可以把一个小型Excel电子表格放在Word文档中。之后,它逐步演化为COM、DCOM(Distributed.COM,分布式组件对象模型)和最终的COM。COM是一种复杂的技术,它是几乎所有组件通信方式的基础,实现了事务处理、消息传输服务和对象池。
Microsoft选择这种软件革新方法的原因非常明显:它关注后向兼容性。在过去的这些年中,人们编写了大量Windows第三方软件,如果Microsoft每次都引入一项不遵循现有基本代码的新技术,Windows就不会获得今天的成功。
后向兼容性是Windows技术的极其重要的功能,也是Windows平台的一个长处。但它有一个很大的缺点:每次某项技术更新换代,增加了新功能后,它都会比以前更复杂。
很明显,对此必须改进。Microsoft不可能一直扩展相同的开发工具和语言,总是使它们越来越复杂,既要保证能跟上最新硬件的发展步伐,又要与20世纪90年代初开始流行的Windows产品向后兼容。如果要得到一系列简单而专业的语言、环境和开发工具,让开发人员轻松地编写一流的软件,就需要一个新的开端。
这就是C#和.NET的作用。粗略地说,.NET是一种在Windows平台上编程的架构——一种API。C#是一种从头开始设计的用于.NET的语言,它可以利用.NET.Framework及其开发环境中的所有新增功能,以及在最近25年来出现的面向对象的编程方法。
在继续介绍前,必须先说明,后向兼容性并没有在这个演化进程中丧失。现有的程序仍可以使用,.NET也兼容现有的软件。现在,在Windows上软件组件之间的通信几乎都使用COM实现。因此,.NET能够提供现有COM组件的包装器(wrapper),以便.NET组件与之通信。
我们不需要学习了C#才能给.NET编写代码,因为Microsoft已经扩展了C,还对Visual.Basic进行了很多改进,把它转变成了功能更强大的语言,并允许把用这些语言编写的代码用于.NET环境。但其他这些语言都因有多年演化的遗留痕迹,并非一开始就用现在的技术来编写,导致它们不能用于.NET环境。
本书将介绍C#编程技术,同时提供.NET体系结构工作原理的必要背景知识。我们不仅会介绍C#语言的基础,还会给出使用各种相关技术的应用程序对应的示例,包括数据库访问、动态的Web页面、高级的图形和目录访问等。Windows.API自从1993年发布的Windows.NT以来一直在演化和扩展,但自从2002年以来,.NET.Framework对程序编写方式进行了重大的修改,2012年又进行了一次很大的改动。每10年就会发生这种改变吗?Windows8现在提供了一种新的API:用于Windows.Store应用程序的Windows运行库(WinRT)。这个运行库是一个本机API(类似于Windows.API),它没有把.NET运行库作为其核心,但提供了基于.NET理念的非常好的新功能。Windows8包含这个API的第一个版本,可用于现代模式的应用程序。尽管它不基于.NET,但仍可以将.NET的一个子集应用于Windows.Store应用程序,用C#编写该应用程序。这个新的运行库正在演化,在Windows8.1中包含它的版本2。本书也讨论了如何使用C#和WinRT编写Windows Store应用程序。
.NET的优点
前面阐述了.NET的优点,但并没有说它会使开发人员的工作更易完成。本节将简要讨论.NET的一些功能。
● 面向对象编程:.NET Framework和C#从一开始就完全基于面向对象的原则。
● 优秀的设计:一个基类库,它以一种非常直观的方式设计出来。
● 语言无关性:在.NET中,Visual Basic、C#和托管C 等语言都可以编译为通用的中间语言(Intermediate Language)。这说明,语言可以用以前没有的方式交互操作。
●对动态Web页面的更好支持:虽然经典ASP具有很大的灵活性,但效率不是很高,这是因为它使用了解释性的脚本语言,且缺乏面向对象的设计,从而导致ASP代码比较混乱。.NET使用ASP.NET,为Web页面提供了一种集成支持。使用ASP.NET,可以编译页面中的代码,这些代码还可以使用.NET能识别的高级语言来编写,如C#或Visual Basic 2013。.NET现在还添加了对最新Web技术的重要支持,如Ajax和jQuery。
● 高效的数据访问:一组.NET组件,统称为ADO.NET,提供了对关系数据库和各种数据源的高效访问。这些组件也可用于访问文件系统和目录。尤其是,.NET内置了XML支持,可以处理从非Windows平台导入或导出的数据。
● 代码共享:.NET引入了程序集的概念,替代了传统的DLL,可以完美无瑕地改进代码在应用程序之间的共享方式。程序集是解决版本冲突的正式设备,程序集的不同版本可以并存。
● 增强的安全性:每个程序集还可以包含内置的安全信息,这些信息可以准确地指出哪种类型的用户或进程可以调用什么类的哪些方法。这样就可以非常准确地控制用户部署的程序集的使用方式。
●对安装没有任何影响:有两种类型的程序集,分别是共享程序集和私有程序集。共享程序集是可用于所有软件的公共库,而私有程序集只用于特殊软件。由于私有程序集完全自包含,因此安装过程非常简单。没有注册表项,只需要把相应的文件放在文件系统的相应文件夹中即可。
● Web服务的支持:.NET完全集成了对开发Web服务的支持,用户可以轻松地开发任何类型的应用程序。
●Visual.Studio2013:.NET附带了一个Visual.Studio2013开发环境,它同样可以很好地利用C、C#、Visual.Basic2013和ASP.NET或XML进行编码。Visual.Studio2013集成了这个IDE所有以前版本中的各种语言专用环境中的所有最佳功能。
● C#:是使用.NET的一种面向对象的强大且流行的语言。
第1章将详细讨论.NET体系结构的优点。
.NET Framework 4.5和4.5.1中的新增特性
.NETFramework的第1版(1.0版)在2002年发布,赢得了许多人的喝彩。.NET.Framework2.0在2005年发布,是该架构的一个主要版本。2.0版本的主要新特性是C#和运行库中对泛型的支持(为泛型修改了IL代码)、新类和接口。.NET3.0以2.0运行库为基……
c#高级编程第9版禁用于商业用途!如果您喜欢《c#高级编程第9版》,请购买正版,谢谢合作。
爱学习,请到3322软件站 / 查找资源自行下载!
1、下载并解压,得出pdf文件
2、如果打不开本文件,请务必在3322软件站选择一款阅读器/zt/430.html下载
3、安装后,在打开解压得出的pdf文件
4、双击进行阅读
方法二:
1、在手机里下载3322软件站中的阅读器和百度网盘
2、直接将pdf传输到百度网盘
3、用阅读器打开即可阅读
c#高级编程第9版内容简介:
《提升C#和.NET技能的必备参考资源Visual.Studio2015、ASP.NET.Core1.0和Universal.Windows.Platform的推出,为开发人员提供了使用C#创建应用程序的新方式。作为经典C#畅销书,本书涵盖了充分利用升级功能,积极简化工作流程所需的全部信息。本书循序渐进地讲解了Visual.Studio.2015、.NET.Core.1.0、ASP.NET.MVC、Universal.Windows.Platform、WPF的*变化。每一章都提供了清晰的解释、下载的代码,并从专家的角度提供了有价值的视野。有本书在手,读者可以快速获得*的特性和功能。主要内容
◆通过NET.Core和C#6的增强功能,重新塑造了.NET平台,包括新增的.NET编译器平台
◆展示了如何使用新的Visual.Studio工具和用于ASP.NET.Core.1.0、ASP.NET.MVC、Web.API、WPF和Universal Windows Platform的模板
◆ 介绍允许应用程序在Windows、Linux和OS X上运行的.NET Core框架,还囊括了任务和并行编程,访问文件系统,以及网络堆栈
◆演示了如何使用ASP.NET.MVC6和WebAPI创建Web应用程序,以及利用SignalR和WebHooks的推送通知
◆ 介绍专业开发功能,例如单元测试,通过MVVM模式在WPF和Universal Windows Platform之间共享代码
c#高级编程第9版简介:
版 次:5印刷时间:2014年10月01日开 本:16开
纸 张:胶版纸
包 装:平装-胶订
是否套装:否
国际标准书号ISBN:9787302380023
丛书名:.NET 开发经典名著
正文语种:中文
c#高级编程第9版作者简介:
Christian.Nagel是Microsoft.RD、Microsoft.MVP、thinktecture的合作伙伴、CN革新技术的奠基人,他还是一位软件架构师和开发人员,为开发Microsoft.NET解决方案提供培训和咨询服务。他具备超过25年的软件开发经验。Christian从PDP11和VAX/VMS系统开始其计算机生涯,熟悉各种语言和平台。他具备Microsoft技术的深厚功底,编写了大量图书,并获得了Microsoft认证培训师和专业开发人员证书。Jay Glynn开发软件的时间超过20年,使用PICK Basic为PICK操作系统编写应用程序。到目前为止,他使用过Delphi、VBA、Visual Basic、C、Java和C#编写软件。他目前是VGT的高级软件工程师,编写基于Web的应用程序。
Morgan Skinner是一位自由顾问,他在开始自己的顾问生涯之前,在Microsoft工作了将近10年。
c#高级编程第9版目录:
第Ⅰ部分C#语言第1章.NET体系结构
1.1C#与.NET的关系
1.2公共语言运行库
1.2.1平台无关性
1.2.2提高性能
1.2.3语言的互操作性
1.3中间语言
1.3.1面向对象和接口的支持
1.3.2不同的值类型和引用类型
1.3.3强数据类型化
1.3.4通过异常处理错误
1.3.5特性的使用
1.4程序集
1.4.1私有程序集
1.4.2共享程序集
1.4.3反射
1.4.4并行编程
1.4.5异步编程
1.5.NETFramework类
1.6名称空间
1.7用C#创建.NET应用程序
1.7.1创建ASP.NET应用程序
1.7.2使用WPF
1.7.3WindowsStore应用程序
1.7.4Windows服务
1.7.5WCF
1.7.6WindowsWF
1.8C#在.NET企业体系结构中的作用
1.9小结
第2章核心C#
2.1C#基础
2.2第一个C#程序
2.2.1代码
2.2.2编译并运行程序
2.2.3详细介绍
2.3变量
2.3.1变量的初始化
2.3.2类型推断
2.3.3变量的作用域
2.3.4常量
2.4预定义数据类型
2.4.1值类型和引用类型
2.4.2CTS类型
2.4.3预定义的值类型
2.4.4预定义的引用类型
2.5流控制
2.5.1条件语句
2.5.2循环
2.5.3跳转语句
2.6枚举
2.7名称空间
2.7.1using语句
2.7.2名称空间的别名
2.8Main()方法
2.8.1多个Main()方法
2.8.2给Main()方法传递参数
2.9有关编译C#文件的更多内容
2.10控制台I/O
2.11使用注释
2.11.1源文件中的内部注释
2.11.2XML文档
2.12C#预处理器指令
2.12.1#define和#undef
2.12.2#if、#elif、#else和#endif
2.12.3#warning和#error
2.12.4#region和#endregion
2.12.5#line
2.12.6#pragma
2.13C#编程规则
2.13.1关于标识符的规则
2.13.2用法约定
2.14小结
第3章对象和类型
3.1创建及使用类
3.2类和结构
3.3类
3.3.1数据成员
3.3.2函数成员
3.3.3只读字段
3.4匿名类型
3.5结构
3.5.1结构是值类型
3.5.2结构和继承
3.5.3结构的构造函数
3.6弱引用
3.7部分类
3.8静态类
3.9Object类
3.9.1System.Object()方法
3.9.2ToString()方法
3.10扩展方法
3.11小结
第4章继承
4.1继承
4.2继承的类型
4.2.1实现继承和接口继承
4.2.2多重继承
4.2.3结构和类
4.3实现继承
4.3.1虚方法
4.3.2隐藏方法
4.3.3调用函数的基类版本
4.3.4抽象类和抽象函数
4.3.5密封类和密封方法
4.3.6派生类的构造函数
4.4修饰符
4.4.1可见性修饰符
4.4.2其他修饰符
4.5接口
4.5.1定义和实现接口
4.5.2派生的接口
4.6小结
第5章泛型
5.1泛型概述
5.1.1性能
5.1.2类型安全
5.1.3二进制代码的重用
5.1.4代码的扩展
5.1.5命名约定
5.2创建泛型类
5.3泛型类的功能
5.3.1默认值
5.3.2约束
5.3.3继承
5.3.4静态成员
5.4泛型接口
5.4.1协变和抗变
5.4.2泛型接口的协变
5.4.3泛型接口的抗变
5.5泛型结构
5.6泛型方法
5.6.1泛型方法示例
5.6.2带约束的泛型方法
5.6.3带委托的泛型方法
5.6.4泛型方法规范
5.7小结
第6章数组
6.1同一类型和不同类型的多个对象
6.2简单数组
6.2.1数组的声明
6.2.2数组的初始化
6.2.3访问数组元素
6.2.4使用引用类型
6.3多维数组
6.4锯齿数组
6.5Array类
6.5.1创建数组
6.5.2复制数组
6.5.3排序
6.6数组作为参数
6.6.1数组协变
6.6.2ArraySegment<;
T>;
6.7枚举
6.7.1IEnumerator接口
6.7.2foreach语句
6.7.3yield语句
6.8元组
6.9结构比较
6.10小结
第7章运算符和类型强制转换
7.1运算符和类型转换
7.2运算符
7.2.1运算符的简化操作
7.2.2运算符的优先级
7.3类型的安全性
7.3.1类型转换
7.3.2装箱和拆箱
7.4比较对象的相等性
7.4.1比较引用类型的相等性
7.4.2比较值类型的相等性
7.5运算符重载
7.5.1运算符的工作方式
7.5.2运算符重载的示例:Vector结构
7.6用户定义的类型强制转换
7.6.1实现用户定义的类型强制转换
7.6.2多重类型强制转换
7.7小结
第8章委托、lambda表达式和事件
8.1引用方法
8.2委托
8.2.1声明委托
8.2.2使用委托
8.2.3简单的委托示例
8.2.4Action<;T>;和Func<;T>;委托
8.2.5BubbleSorter示例
8.2.6多播委托
8.2.7匿名方法
8.3lambda表达式
8.3.1参数
8.3.2多行代码
8.3.3闭包
8.3.4使用foreach语句的闭包
8.4事件
8.4.1事件发布程序
8.4.2事件侦听器
8.4.3弱事件
8.5小结
第9章字符串和正则表达式
9.1System.String类
9.1.1创建字符串
9.1.2StringBuilder成员
9.1.3格式字符串
9.2正则表达式
9.2.1正则表达式概述
9.2.2RegularExpressionsPlayaround示例
9.2.3显示结果
9.2.4匹配、组合和捕获
9.3小结
第10章集合
10.1概述
10.2集合接口和类型
10.3列表
10.3.1创建列表
10.3.2只读集合
10.4队列
10.5栈
10.6链表
10.7有序列表
10.8字典
10.8.1键的类型
10.8.2字典示例
10.8.3Lookup类
10.8.4有序字典
10.9集
10.10可观察的集合
10.11位数组
10.11.1BitArray类
10.11.2BitVector32结构
10.12不变的集合
10.13并发集合
10.13.1创建管道
10.13.2使用BlockingCollection
10.13.3使用ConcurrentDictionary
10.13.4完成管道
10.14性能
10.15小结
第11章LINQ
11.1LINQ概述
11.1.1列表和实体
11.1.2LINQ查询
11.1.3扩展方法
11.1.4推迟查询的执行
11.2标准的查询操作符
11.2.1筛选
11.2.2用索引筛选
11.2.3类型筛选
11.2.4复合的from子句
11.2.5排序
11.2.6分组11.2.7对嵌套的对象分组
11.2.8内连接
11.2.9左外连接
11.2.10组连接
11.2.11集合操作
11.2.12合并
11.2.13分区
11.2.14聚合操作符
11.2.15转换操作符
11.2.16生成操作符
11.3并行LINQ
11.3.1并行查询
11.3.2分区器
11.3.3取消
11.4表达式树
11.5LINQ提供程序
11.6小结
第12章动态语言扩展
12.1DLR
12.2dynamic类型
12.3包含DLRScriptRuntime
12.4DynamicObject和ExpandoObject12.4.1DynamicObject
12.4.2ExpandoObject
12.5小结
第13章异步编程.....
第14章内存管理和指针.....
第15章反射......
第16章错误和异常
16.1简介
16.2异常类
16.3捕获异常
16.3.1实现多个catch块
16.3.2在其他代码中捕获异常
16.3.3System.Exception属性
16.3.4没有处理异常时所发生的情况
16.3.5嵌套的try块
16.4用户定义的异常类
16.4.1捕获用户定义的异常
16.4.2抛出用户定义的异常
16.4.3定义用户定义的异常类
16.5调用者信息
16.6小结
第Ⅱ部分VisualStudio
第Ⅲ部分基础
第Ⅳ部分数据
c#高级编程第9版前言/序言:
前 言对于开发人员,把C#语言及其相关联的.NET.Framework环境描述为最重要的新技术一点都不夸张。.NET提供了一种环境。在这个环境中,可以开发在Windows上运行的几乎所有应用程序,而C#是专门用于.NET.Framework的编程语言。例如,使用C#可以编写动态Web页面、Windows.Presentation.Foundation应用程序、XMLWeb服务、分布式应用程序的组件、数据库访问组件、传统的Windows桌面应用程序,甚或可以联机/脱机运行的新型智能客户端应用程序。本书介绍.NET Framework4.5.1。如果读者使用以前的版本编码,本书的一些章节就不适用。本书将标注出专用于.NET Framework 4.5和4.5.1的新增内容。
不要被这个架构名称中的.NET所迷惑,认为这是一个只关注Internet的架构。这个名称中的.NET仅强调Microsoft相信分布式应用程序是未来的趋势,即处理过程分布在客户端和服务器上。理解C#不仅仅是编写Internet或网络识别应用程序的一种语言也很重要。它还提供了一种编写Windows平台上几乎任何类型的软件或组件的方式。另外,C#和.NET都对开发人员编写程序的方式进行了革新,更易于实现在Windows上的编程。
那么,.NET和C#有什么优点?
.NET和C#的重要性
为了理解.NET的重要性,就一定要了解过去20年来出现的许多Windows技术的本质。尽管所有Windows操作系统在表面上看来完全不同,但从Windows3.1(1993年引入)到Windows.8.1和Windows.Server.2012R2,在内核上都有相同的Windows API用于Windows桌面和服务器应用程序。在我们转而使用Windows的新版本时,虽然API中增加了非常多的新功能,但这是一个演化和扩展API的过程,并非替换它。
在Windows 8中,操作系统的主API被Windows运行库替代。但这个运行库仍部分基于Windows API。
开发Windows软件所使用的许多技术和架构也是这样。例如,组件对象模型(Component.Object.Model,COM)源自对象链接和嵌入(Object.Linking.and.Embedding,OLE)。最初,因为它在很大程度上仅把不同类型的Office文档链接在一起,所以利用它,例如,可以把一个小型Excel电子表格放在Word文档中。之后,它逐步演化为COM、DCOM(Distributed.COM,分布式组件对象模型)和最终的COM。COM是一种复杂的技术,它是几乎所有组件通信方式的基础,实现了事务处理、消息传输服务和对象池。
Microsoft选择这种软件革新方法的原因非常明显:它关注后向兼容性。在过去的这些年中,人们编写了大量Windows第三方软件,如果Microsoft每次都引入一项不遵循现有基本代码的新技术,Windows就不会获得今天的成功。
后向兼容性是Windows技术的极其重要的功能,也是Windows平台的一个长处。但它有一个很大的缺点:每次某项技术更新换代,增加了新功能后,它都会比以前更复杂。
很明显,对此必须改进。Microsoft不可能一直扩展相同的开发工具和语言,总是使它们越来越复杂,既要保证能跟上最新硬件的发展步伐,又要与20世纪90年代初开始流行的Windows产品向后兼容。如果要得到一系列简单而专业的语言、环境和开发工具,让开发人员轻松地编写一流的软件,就需要一个新的开端。
这就是C#和.NET的作用。粗略地说,.NET是一种在Windows平台上编程的架构——一种API。C#是一种从头开始设计的用于.NET的语言,它可以利用.NET.Framework及其开发环境中的所有新增功能,以及在最近25年来出现的面向对象的编程方法。
在继续介绍前,必须先说明,后向兼容性并没有在这个演化进程中丧失。现有的程序仍可以使用,.NET也兼容现有的软件。现在,在Windows上软件组件之间的通信几乎都使用COM实现。因此,.NET能够提供现有COM组件的包装器(wrapper),以便.NET组件与之通信。
我们不需要学习了C#才能给.NET编写代码,因为Microsoft已经扩展了C,还对Visual.Basic进行了很多改进,把它转变成了功能更强大的语言,并允许把用这些语言编写的代码用于.NET环境。但其他这些语言都因有多年演化的遗留痕迹,并非一开始就用现在的技术来编写,导致它们不能用于.NET环境。
本书将介绍C#编程技术,同时提供.NET体系结构工作原理的必要背景知识。我们不仅会介绍C#语言的基础,还会给出使用各种相关技术的应用程序对应的示例,包括数据库访问、动态的Web页面、高级的图形和目录访问等。Windows.API自从1993年发布的Windows.NT以来一直在演化和扩展,但自从2002年以来,.NET.Framework对程序编写方式进行了重大的修改,2012年又进行了一次很大的改动。每10年就会发生这种改变吗?Windows8现在提供了一种新的API:用于Windows.Store应用程序的Windows运行库(WinRT)。这个运行库是一个本机API(类似于Windows.API),它没有把.NET运行库作为其核心,但提供了基于.NET理念的非常好的新功能。Windows8包含这个API的第一个版本,可用于现代模式的应用程序。尽管它不基于.NET,但仍可以将.NET的一个子集应用于Windows.Store应用程序,用C#编写该应用程序。这个新的运行库正在演化,在Windows8.1中包含它的版本2。本书也讨论了如何使用C#和WinRT编写Windows Store应用程序。
.NET的优点
前面阐述了.NET的优点,但并没有说它会使开发人员的工作更易完成。本节将简要讨论.NET的一些功能。
● 面向对象编程:.NET Framework和C#从一开始就完全基于面向对象的原则。
● 优秀的设计:一个基类库,它以一种非常直观的方式设计出来。
● 语言无关性:在.NET中,Visual Basic、C#和托管C 等语言都可以编译为通用的中间语言(Intermediate Language)。这说明,语言可以用以前没有的方式交互操作。
●对动态Web页面的更好支持:虽然经典ASP具有很大的灵活性,但效率不是很高,这是因为它使用了解释性的脚本语言,且缺乏面向对象的设计,从而导致ASP代码比较混乱。.NET使用ASP.NET,为Web页面提供了一种集成支持。使用ASP.NET,可以编译页面中的代码,这些代码还可以使用.NET能识别的高级语言来编写,如C#或Visual Basic 2013。.NET现在还添加了对最新Web技术的重要支持,如Ajax和jQuery。
● 高效的数据访问:一组.NET组件,统称为ADO.NET,提供了对关系数据库和各种数据源的高效访问。这些组件也可用于访问文件系统和目录。尤其是,.NET内置了XML支持,可以处理从非Windows平台导入或导出的数据。
● 代码共享:.NET引入了程序集的概念,替代了传统的DLL,可以完美无瑕地改进代码在应用程序之间的共享方式。程序集是解决版本冲突的正式设备,程序集的不同版本可以并存。
● 增强的安全性:每个程序集还可以包含内置的安全信息,这些信息可以准确地指出哪种类型的用户或进程可以调用什么类的哪些方法。这样就可以非常准确地控制用户部署的程序集的使用方式。
●对安装没有任何影响:有两种类型的程序集,分别是共享程序集和私有程序集。共享程序集是可用于所有软件的公共库,而私有程序集只用于特殊软件。由于私有程序集完全自包含,因此安装过程非常简单。没有注册表项,只需要把相应的文件放在文件系统的相应文件夹中即可。
● Web服务的支持:.NET完全集成了对开发Web服务的支持,用户可以轻松地开发任何类型的应用程序。
●Visual.Studio2013:.NET附带了一个Visual.Studio2013开发环境,它同样可以很好地利用C、C#、Visual.Basic2013和ASP.NET或XML进行编码。Visual.Studio2013集成了这个IDE所有以前版本中的各种语言专用环境中的所有最佳功能。
● C#:是使用.NET的一种面向对象的强大且流行的语言。
第1章将详细讨论.NET体系结构的优点。
.NET Framework 4.5和4.5.1中的新增特性
.NETFramework的第1版(1.0版)在2002年发布,赢得了许多人的喝彩。.NET.Framework2.0在2005年发布,是该架构的一个主要版本。2.0版本的主要新特性是C#和运行库中对泛型的支持(为泛型修改了IL代码)、新类和接口。.NET3.0以2.0运行库为基……
免责声明:
c#高级编程第9版来源于网络,仅用于分享知识,学习和交流!请下载完在24小时内删除。c#高级编程第9版禁用于商业用途!如果您喜欢《c#高级编程第9版》,请购买正版,谢谢合作。
爱学习,请到3322软件站 / 查找资源自行下载!
使用说明:
方法一:1、下载并解压,得出pdf文件
2、如果打不开本文件,请务必在3322软件站选择一款阅读器/zt/430.html下载
3、安装后,在打开解压得出的pdf文件
4、双击进行阅读
方法二:
1、在手机里下载3322软件站中的阅读器和百度网盘
2、直接将pdf传输到百度网盘
3、用阅读器打开即可阅读
展开更多
c#高级编程第9版pdf 中文完整版下载地址
- 需先下载高速下载器:
- 专用下载:
- 其它下载: