当前位置:
首页 > 教材教辅 > 大学 > C# 程序设计教程(第4版)pdf/doc/txt格式电子书下载

C# 程序设计教程(第4版)pdf/doc/txt格式电子书下载

本站仅展示书籍部分内容

如有任何咨询

请加微信10090337咨询

C# 程序设计教程(第4版)pdf/doc/txt格式电子书下载

书名:C# 程序设计教程(第4版)pdf/doc/txt格式电子书下载

推荐语:

作者:刘甫迎编

出版社:电子工业出版社

出版时间:2015-10-01

书籍编号:30468233

ISBN:9787121270857

正文语种:中文

字数:151915

版次:4

所属分类:教材教辅-大学

全书内容:

C# 程序设计教程(第4版)pdf/doc/txt格式电子书下载






前言


C#是从C和C++演变而来的一种新的面向对象编程语言。结合C#的强大功能和Visual Studio.NET平台的环境和类的支持,形成了功能强大的开发工具——C#.NET。C#是目前主流语言中不多见的在Internet出现后推出的语言,故它的设计很适合在互联网上使用。C#可以编译成跨平台的代码,它避免了C语言中复杂的指针和多继承,简单易学且功能强。C#结合ASP.NET或Windows Phone平台开发应用程序,代表了当前广泛使用的一个编程方向,受到人们青睐。


本教材是国内高校最早使用的C#程序设计课程教材之一,我们主编出版的前三版教材多次印刷,众多高校使用,受到读者欢迎,其第4版主要特点如下。


(1)本教材介绍了C#2015的新特点,并以使用较普遍的C#2012版平台为基础进行了内容更新,使新版本与普遍使用的版本相结合。


(2)严格限定本课程在专业中的培养目标界限,以确定课程内容(例如把Access作为数据库类教材等)。本课程目标是使学生掌握运用C#去设计应用程序的基本知识及技能,为今后作计算机程序设计员或软件工程师奠定基础。课程重点是C#的结构化程序设计、面向对象和可视化程序设计、客户机/服务器(C/S)结构编程、多线程应用等。


(3)将“第10章C#的数据库操作”改为“第10章C#的客户机/服务器(C/S)编程”,因为其后端数据源不只是数据库。


(4)在选材上,继续强调理论“以必需、够用为度”,删去了不常用的语法、语义解释,在系统性和实用性两方面寻求平衡;减少了个别章节的难度,力求深入浅出。


(5)书中实例使用了许多经典算法,弥补了有些读者未学《数据结构》的不足。


(6)增强实践性,各章均有不少经过运行验证的实例,并且使第12章的综合案例(应用UML、CASE、MVC等技术)更加完善。


(7)教学资源丰富,打造成立体化教材:在其精品资源在线开放课程网站上,有配套的PPT、教学大纲、习题、实验指导书、课程设计、教师在线辅导、CAI、网络课程、试题库、考试系统、相关素材等,这些资源生动、具体、形象、直观,便于教与学。


本书由成都工业学院、四川托普信息技术职业学院刘甫迎教授主编,刘光会、王蓉、刘焱副主编。刘甫迎编写第1章、第7.4节、第12章;刘光会编写第2章至第6章和附录;王蓉编写第7章、第9章、第10章;刘焱编写第8章、第6.2.4节、第10.5节、第11 章,全书由刘甫迎统稿。其他参编人员:周绍敏、刘亚飞、党晋蓉、李琦、李飞跃、杨雅志、龚茗茗、谢春、饶斌、陈振梁、樊婷婷。在编写和出版的过程中,得到电子工业出版社吕迈编辑的大力支持,在此谨表示感谢!由于水平有限,错误难免,请斧正。


本课程网站:http://211.83.32.106/jpkc/2008/c_pro/


刘甫迎

第1章 C#概述


本章介绍C#的由来和发展、特点、VS 2015等的新功能、Microsoft.NET平台以及C#的运行环境,使读者能够初步了解C#,并能够进行C#的安装、启动和熟悉C#的界面。


1.1 C#简介


1.1.1 C#的发展


美国微软公司的Visual Studio.NET已到2015版了,Visual C#(简称VC#或C#,本书统一称C#)包含在其中。然而,C#是如何发展而来的呢?


1995年,SUN公司正式推出了面向对象的开发语言Java,它具有跨平台、跨语言的功能特点,Java逐渐成了企业级应用系统开发的首选工具,而且使得越来越多的基于C/C++的应用开发人员转向于从事基于Java的应用开发。


在Java势头很猛的软件开发领域可观前景的冲击下,作为世界上最大的软件公司微软立即做出了迎接挑战的反应。很快,微软也推出了基于Java语言的编译器Visual J++。Visual J++在最短的时间里由1.1版本升级到了6.0版本。Visual J++6.0集成在Visual Studio 6.0中,不但虚拟机(Java Virtual Machine,JVM)的运行速度大大加快,而且增加了许多新特性,同时支持调用Windows API,这些特性使得Visual J++成为强有力的Windows应用开发平台,并成为业界公认的优秀Java编译器。


Visual J++虽然具有强大的开发功能,但主要应用在Windows平台的系统开发中,SUN公司认为Visual J++违反了Java的许可协议,即违反了Java开发平台的中立性,因而,对微软提出了诉讼,这使得微软处于极为被动的局面。为了改变这种局面,微软另辟蹊径,决定推出其进军互联网的庞大.NET计划,和该计划中重要的开发语言——Visual C#。


微软的.NET是一项非常庞大的计划,也是微软发展的战略核心。Visual Studio.NET则是微软.NET技术的开发平台,C#就集成在Visual Studio.NET中。.NET代表了一个集合、一个环境、一个编程的基本结构,作为一个平台来支持下一代的互联网(1.1.4节将详细介绍.NET平台)。为了支持.NET平台,Visual Studio.NET在原来的Visual Studio 6.0的


基础上进行了极大的修改和变更。在Visual Studio.NET测试版中,Visual J++消失了,取而代之的就是C#语言。


美国微软公司在2000年6月份举行的“职业开发人员技术大会”上正式发布了C#语言,其英文名为Visual C-Sharp。微软公司对C#的定义是:“C#是一种类型安全的、现代的、简单的,由C和C++衍生出来的面向对象的编程语言,它是牢牢根植于C和C++语言之上的,并可立即被C和C++开发人员所熟悉。C#的目的就是综合Visual Basic的高生产率和C++的行动力。”


目前使用C#进行C/S(客户/服务器)结构编程或用C#与ASP.NET结合进行B/S(浏览器/服务器)结构编程的人员越来越多,用C#进行编程已成为今后程序设计的趋势之一,而且将逐步超越其他主流编程语言的地位。为什么会这样呢?请看下节所讲述的C#的特点。


1.1.2 C#的特点


作为微软新一代面向对象的语言产品,C#语言自C/C++演变而来,它是给那些愿意牺牲C++一点底层功能,以获得更方便和更产品化的企业开发人员而创造的。C#具有现代、简单、完全面向对象和类型安全等特点。


如果读者是C/C++程序员,学习将会变得很容易。许多C#语句直接借用程序员所喜爱的语言,包括表达式和操作符。假如不仔细看,就会把它当成C++。


关于C#最重要的一点:它是现代的编程语言。它在类、名字空间、方法重载和异常处理等领域简化了C++。摒弃了C++的复杂性,使它更易用、更少出错。


对C#的易用有贡献的是减少了C++的一些特性,不再有宏、模板和多重继承。特别对企业开发者来说,上述功能只会产生更多的麻烦而不是效益。


使编程更方便的新功能是严格的类型安全、版本控制、垃圾收集(garbage collect)等。所有这些功能的目标都瞄准了开发面向组件的软件。


1.可避免指针等,语法更简单、易学


C#中可避免复杂的令人头痛的C++中流行的指针,禁止直接内存操作,不能使用“::”和“→”运算符,整型数据0和1也不再是布尔值,“==”被用于比较操作而“=”被用做赋值操作,从而减少了运算符错误。C#使用统一的类型系统,摒弃了C++中多变的类型系统。


2.支持跨平台


由于网络系统错综复杂,使用的硬件设备和软件系统各不相同,开发人员所设计的应用程序必须具有强大的跨平台性,C#编写的应用程序就具有强大的跨平台性,这种跨平台性也包括了C#程序的客户端可以运行在不同类型的客户端上,比如PDA、手机等非PC设备。


3.面向对象且避免了多重继承


C#支持所有关键的面向对象的概念,如封装、继承和多态性。完整的C#类模式构建在NGWS运行时的虚拟对象系统(VOS,Virtual Object System)的上层。对象模式只是基础的一部分。


在C#中,不存在全局函数、变量或者是常量。所有的东西都封装在类中,包括事例成员(通过类的事例——对象可以访问)或静态成员(通过数据类型)。这些使C#代码更加易读且有助于减少潜在的命名冲突。


定义类中的方法默认是非虚拟的(它们不能被派生类改写)。主要特点是,这样会消除由于偶尔改写方法而导致另外一些原码出错。要改写方法,必须具有显式的虚拟标志。这种行为不但缩减了虚拟函数表,而且还确保正确版本的控制。


使用C++编写类,用户可以使用访问权限给类成员设置不同的访问等级。C#同样支持private,protected和public三种访问权限,而且还增加了第四种:internal。


大多数情况,仅需从一个类派生出。这就是为什么C#仅允许一个基类。如果程序员觉得需要多重继承,可以运用接口。


4.现代快速应用开发(RAD)功能


支持快速应用开发(Rapid Application Development)是目前开发语言最为重要的功能之一,也正是C/C++的致命伤。网络时代应用系统的开发必须按照网络时代的速度来进行,支持快速开发可以使得开发人员的开发效率倍增,从而使得他们可以从繁重的重复性劳动中解放出来。C#的RAD功能主要表现在如垃圾收集、委托等众多特性上。垃圾收集机制将减轻开发人员对内存的管理负担,而委托功能更是可以让程序员不经过内部类就调用函数。利用C#的这些功能,可以使开发者通过较少的代码来实现更强大的应用程序,并且能够更好地避免错误的发生,从而缩短了应用系统的开发周期。许多用C++很费力实现的功能,在C#中不过是一部分的基本功能而已。


5.语言的兼容、协作交互性


用C#编写的程序能最大限度地实现与任何.NET的语言互相交换信息,为开发人员节省了大量的时间。C#与其他.NET语言有着最好的协作,这点对开发人员非常重要。.NET让各种语言可以真正地互相交流,开发者不必把一种语言强行改成另一种语言。全球从事编写软件的人当中,大约有50%以Visual Basic作为基本的编程工具,在跨入.NET编程时代的时候,这些人能轻松地使用Visual Basic.NET开发Web应用程序,C#可与之很好地兼容、协作交互。


6.与XML的天然融合


由于XML技术真正融入到了.NET和C#之中,C#编程变成了真正意义上的网络编程,甚至可以说.NET和C#是专为XML而设计的。使用C#的程序员可以轻松用C#内含的类使用XML技术。和其他编程语言相比,C#为程序员提供了更多的自由和更好的性能来使用XML。


7.对C++的继承且类型安全


C#集成并保留了C++强大的功能。例如,C#保留了类型安全检测和重载功能,还提供了一些新功能取代原来C++中的预处理程序的部分功能,提高了语言的类型安全性。


类型安全可以选指针作为一个例子。在C++中使用指针,程序员能自由地把它强制转换成为任何类型,包括可以执行把一个int*(整型指针)强制转换成一个double*(双精度指针)这样的不安全操作。但只要内存支持这种操作,它就可以执行,这并不是程序员所想象的企业级编程语言的类型安全。


C#实施最严格的类型安全,以保护自己及垃圾收集器。因此必须遵守C#中一些相关变量的规则。


C#取消了不安全的类型转换。不能把一个整型强制转换成一个引用类型(如对象),而当向下转换时,C#验证这种转换是正确的,也就是说,派生类真的是从向下转换的那个类派生出来的。


8.版本可控


在过去的几年中,几乎所有的程序员都避免涉及众所周知的“DLL地狱”,该问题起因于多个应用程序都安装了相同DLL名字的不同版本。有时,老版本的应用程序可以很好地和新版本的DLL一起工作,但是更多的时候它们会中断运行。


NGWS运行时将对程序员所写的应用程序提供版本支持。C#可以最好地支持版本控制。尽管C#不能确保正确的版本控制,但是它可以为程序员保证版本控制成为可能。有了这种支持,一个开发人员就可以确保当他的类库升级时,仍保留着对已存在的客户应用程序的二进制兼容。


综上所述,可以认为C#是派生于C语言和C++语言的一种程序设计语言。它使程序员能够更快速、更容易地为微软.NET平台开发应用程序。但C#也有一些弱点,例如:C#程序设计和编译程序级的优化不能在非微软的平台上充分利用,想在非Windows平台上展开.NET,再充分运用它们也是不现实的。


1.1.3 VS2015等的新功能


包含C#语言的Visual Studio.NET已到VS2015版本了。


C#1.0于2000年亮相,随着C#2.0和Visual Studio 2005的问世,C#等语言中新增了几个重要的功能,其中包括泛型、迭代器和匿名方法等。随同Microsoft Visual Studio 2008发布的C#3.0添加了更多功能,例如扩展方法、lambda表达式、自动属性,对象初始化器和集合初始化器以及最有名的语言集成查询(Language Integrated Query,LINQ)工具。


Visual C#4.0(Visual C#2010)提供了进一步的增强,它改善了与其他语言和技术的互操作性。新增的功能包括命名和可选参数;dynamic类型,它告诉语言在“运行时”,要实现一个对象的晚期绑定,以及协变性和逆变性,它们解决了泛型接口的定义方式所造成的一


些问题。C#4.0利用了新版本的.NET Framework,版本也是4.0。在这个版本中,.NET Framework添加了许多新东西,但最重要的就是构成“任务并行库”(Task Parallel Library,TPL)的类和类型。现在可以使用TPL构建具有良好伸缩性的应用程序,从而快速和简单地利用多核处理器的强大能力。对Web服务和Windows Communication Foundation(WCF)的支持也得到了扩展;现在可以遵循REST模型和较传统的SOAP方案构建服务。Microsoft Visual Studio.NET 2010提供的开发环境使得这些强大的功能变得易于使用,Visual Studio 2010


新增的大量向导和增强措施也显著提高了开发人员的工作效率。Visual C#2010中新的以及加强的主要功能与特性可有效改善Microsoft Office等的编程能力和对代码的分析、研究能力,并对测试驱动开发提供支持;增加了类型等价支持(Type Equivalence Support),相比从主互操作程序集(Primary Interop Assembly)中导入类型信息,现在可以部署一款带有内嵌类型信息的应用,通过内嵌的类型信息,应用可在运行时间内使用类型而无须参考运行程序集;新的命令行选项:/langversion命令行选项可让编译器接受只在特定C#版本中有效的语法,/appconfig编译器选项可让C#应用指定程序集的应用配置文件位置;Visual C#2010加强了集成开发环境(IDE):有了调用层次结构(Call Hierarchy),能通过你的代码进行导航;现在可以使用Navigate To功能来搜索包含在字符中的关键字,通过使用驼峰式大小写风格(Camel casing)和下画线符来将这些符号分割成关键字;当单击源代码中的一个字符,该字符所有的实例都会被高亮显示;使用中生成(Generate From Usage)可让你在定义classes和members之前就使用它们,而无须在代码中留下你当前的位置,你可以生成一个想要使用但仍未定义的class、构造函数、方法、属性、栏目等存根(stub),这将对工作流程产生最小的影响;IntelliSense现在为IntelliSense声明完成提供了两种选择完成模式和建议模式,当class和member在被定义前使用时,建议模式会被使用;在Visual C#2010中,实时语义误差(Live Semantic Error)功能得到了加强,它使用波浪下画线来发出错误信号与提示。


1.Visual Studio.NET 2012的新特性


本教材使用的新版的Visual Studio.NET 2012(C#2012)有以下新的特性。


(1)Visual Studio.NET 2012的代号为Ark(方舟)。众所周知,人们认为2012年有67.58%的可能性为世界末日(据中国国家统计局调查结果推算)。为了使大家能够平安度过世界末日,微软将新的VS代号命名为Ark,可见MS的社会责任感。


(2)新的VS增加了触摸事件。随着触摸设备的普及,原有的鼠标键盘事件将不能满足需要了,配合Windows 8的上市,VS将增加大量的触摸事件在WPF、SL里面。值得大家关注的是,这次为了体现博爱和自然和谐,首次导入了Miao系统,一种专为猫咪设计的触摸系统。猫咪的爪和人类的手指有很大不同,为了顾及猫咪的触摸需要,特地开发了Miao系统。据项目负责人表示,Wang系统,为狗定制的触摸系统也在开发中。


(3)混合的编码环境。有人批评MS为C#投入了大量的资源,导致了VB、F#的关注度不够。为此,新版本的VS将推出后缀为.mix的新代码——可以在同一份代码里面,混合各种语言的代码。

C# 程序设计教程(第4版)pdf/doc/txt格式电子书下载

众多技术社区的编辑器的代码着色功能表示压力很大。


VS 2012、Microsoft.NET Framework 4.5是一个针对.NET Framework 4的高度兼容的就地更新。通过将.NET Framework 4.5与C#4.5(C#2012)或Visual Basic 4.5编程语言结合使用,可以编写Windows Metro风格的应用程序(为触摸而设计的最新卡片风格界面,能向用户显示重要信息,这个界面同时支持鼠标和键盘,并应用于平板设备)。.NET Framework 4.5包括针对C#4.5和Visual Basic 4.5的重大语言和框架改进,以便能够利用异步性、同步代码中的控制流混合、可响应UI和Web应用程序可扩展性。


2.Visual Studio.NET 2015的新特性


Visual Studio.NET 2015(C#2015)有以下新的特性。


Visual Studio.NET 2015(简称VS2015)中文旗舰版是目前微软最新重磅推出的一款软件开发平台,可以帮助开发人员打造跨平台的应用程序,从Windows到Linux,甚至iOS和Android。软件现在可以轻松开发Android、iOS、WP应用程序,还可以开发能运行在Mac,Linux上的ASP.NET网站,更支持云服务。另外,无论团队规模或项目复杂程度如何,由Team Foundation Server支持的 VS 2015旗舰版均可帮助用户将创意变为软件,用它所写的目标代码适用于微软支持的所有平台,包括Microsoft Windows、Windows Mobile、Windows CE、.NET Framework、.NET Compact Framework和Microsoft Silverlight 及Windows Phone。


VS 2015,这是一款由开发人员工作效率工具、云服务和扩展组成的集成套件,让你和你的团队可以创建适用于 Web、Windows 商店、桌面、Android 和 iOS 的强大的应用程序和游戏。


(1)自定义窗口布局。如果在多个设备上开发应用,那么这个功能就能让你开发起来得心应手了。举个例子,如果在回家的火车上用Surface Pro开发,上班的时候在23英寸的显示器上开发,那么可以使用Window->Apply Window Layout来快速切换开发环境的布局,以适应当前的设备类型。如果登录了VS 2015,那么你还可以使用快捷键来切换开发环境布局,非常方便。


(2)更优的代码编辑器。代码编辑器已经替换成“Roslyn”,将会给你带来不一样的代码编辑体验。当要修复代码的时候,将会出现一个小灯泡,它会提供一系列修复代码的方案,只需选择即可。


(3)Shared Project 集成。过去,开发者多次想在Visual Studio之外使用Shared Project功能却未能实现,但是现在可以了,你只需要搜索shared,在出现的界面中选择Visual C#Shared Project,然后新建一个名为Person.cs的类,编写代码。你也可以创建一个WPF应用程序,引用Shared Project项目。


(4)Bower和NPM中的代码智能提示。若果创建一个ASP.NET 5 Web应用程序,系统将会为你自动生成一目录结构。这里将生成一个名为Dependencies的文件夹,里面包含了Bower和NPM,一般来说,你可以将Bower看做客户端的开发包,比如jQuery和Angular脚本库;可以把NPM看做开发工具,比如Grunt和Gulp。这些开发包都是通过一个JSON格式的文件来进行统一管理的。

C# 程序设计教程(第4版)pdf/doc/txt格式电子书下载

如果想在Bower中添加一个类库,可以打开bower.json文件,加入自己的类库即可。一旦添加成功,将会看到安装/更新/删除的菜单选项,这将使我们开发Web应用程序更加得心应手。


(5)调试Lambdas表达式。现在,我们可以调试Lambdas表达式了,如果想看每一步的执行结果,可以添加监视器和断点,这样就可以更方便、更直接地调试应用程序了。


1.1.4 Microsoft.NET平台


2000年6月22日,微软公司公布了其下一代基于互联网平台的软件开发构想——.NET,在IT业界引起了广泛反响。那么什么是Microsoft.NET?微软公司总裁兼首席执行官史蒂夫·鲍尔默说:“.NET代表了一个集合、一个环境、一个编程的基本结构,作为一个平台来支持下一代的互联网。.NET也是一个用户环境,是一组基本的用户服务,可以作用于客户端、服务器端或任何地方,与改编成的模式具有很好的一致性,并有新的创意。因此,它不仅是一个用户体验,而且是开发人员体验的集合,这就是对.NET的概念性描述。”由此可以看出,.NET是微软公司为适应Internet发展的需要,所提供的特别适合网络编程和网络服务(Web Service)的开发平台,就是将一切都Internet/Web化,让应用程序通过互联网来互相沟通,并同时共享彼此的资源。对于软件开发人员来说,.NET是继DOS开发平台、Windows开发平台之后,以互联网为应用程序开发平台的所谓第三波的改变。这一波是以互联网为基础,通过互联网上标准的通信协议来沟通,以全新的开发环境来开发应用程序。在传统的开发环境下,在不同的程序设计语言间进行代码复用和应用集成以及应用程序的跨平台运行和沟通往往是比较困难的,但是,在.NET环境下,程序设计人员不必担心程序设计语言之间的差异。不同语言开发出来的程序,彼此可直接利用对方的源代码,一种语言与另一种语言之间还可以通过原始代码相互继承。这样,在程序开发设计中,设计人员可根据功能需求的不同,随心所欲地选择不同的语言,大大提高了软件开发的效率。另外,在.NET环境下,由于采用了标准通信协议,可以实现应用程序在不同平台上的沟通。


.NET的核心是.NET框架(.NET Framework),它是构建于以互联网为开发平台的基础工具。.NET框架的结构如图1-1所示。

C# 程序设计教程(第4版)pdf/doc/txt格式电子书下载

图1-1.NET框架

.NET框架的顶层是应用程序,可以大致分为面向网络应用的ASP.NET程序和面向Windows系统的Windows应用程序,这两类应用程序均可使用VC#.NET、VC++.NET、VB.NET等来编写。


.NET框架的中间一层是基础类库,它提供一个可以供不同编程语言调用的、分层的、面向对象的函数库。在传统的开发环境中,各种程序设计语言都有自己的函数库,但由于各种语言的编程方式不同,各函数库以及对其的调用方法也不同,这样就使得跨语言编程比较困难。.NET框架提供了一个各种基于.NET的程序设计语言都可以调用的基础类库,使得各种不一样的编程有了一致性的基础,减少了语言间的界限。在.NET框架的基础类库中,提供了大量的基础类,如窗体控件、通信协议、网络存取等,并以分层的结构来分类。使用这些基础类非常简单方便,只要利用继承或直接调用就可以完成,而且各种基于.N

....

本站仅展示书籍部分内容

如有任何咨询

请加微信10090337咨询

本站仅展示书籍部分内容
如有任何咨询

请加微信10090337咨询

再显示