C# 程序设计教程(第4版)(txt+pdf+epub+mobi电子书下载)


发布时间:2020-07-23 06:12:02

点击下载

作者:刘甫迎

出版社:电子工业出版社

格式: AZW3, DOCX, EPUB, MOBI, PDF, TXT

C# 程序设计教程(第4版)

C# 程序设计教程(第4版)试读:

前言

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的新代码——可以在同一份代码里面,混合各种语言的代码。

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

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格式的文件来进行统一管理的。

如果想在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所示。图1-1.NET框架

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

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

.NET框架的底层是公共语言运行环境(CLR,Common Language Runtime),它提供了程序代码可以跨平台执行的机制。通常,当使用一种程序设计语言编写程序代码后,编译系统将程序代码与语言本身提供的函数库结合,编译成机器可以直接执行的本地代码(Native Code)。但是,当使用.NET程序设计语言编写好程序代码后,它会被编译两次,第一次是将程序代码和基础类组合编译成中间语言(IL,Intermediate Language),第二次是在执行时,.NET的公共语言运行环境(CLR)会将中间语言(IL)代码载入内存,然后及时地将其编译成运行平台的CPU可以执行的本地代码。这样,这些应用程序将可以在任何具有CLR的平台上执行。正是这样的运行模式,使得应用程序可在不同环境下执行。

.NET的公共语言运行环境(CLR)还提供了系统资源统一管理和统一安全机制。以前,在互联网结构下开发应用程序时,虽然互联网的本质是开放的,但是由于在不同的系统平台之间互不相容,使得各系统平台之间的合作也仅限于特定的功能。例如,浏览器与网站服务器之间,通过HTTP(超文本传输协议,Hyper Text Transport Protocol)协议来通信;电子邮件收发程序与服务器通过SMTP(Simple Mail Transfer Protocol)与POP3(Post Office Protocol Version 3)协议存取信件等。而现今.NET要建立的是各式各样的网络应用程序和网络服务,让各种系统的应用程序通过互联网沟通。.NET完成这样强大的功能,除了内部结构的特点外,最重要的一点是.NET框架采用了XML和SOAP两项关键技术,保证了各种系统的应用程序通过互联网方便地进行沟通,并同时共享彼此的资源。XML(可扩展标记语言,Extensible Markup Language)是当今热门技术之一,它是一种Word Wide Web Consortium(W3C协会)标准下的结构化数据表达语言,它提供了跨程序、跨平台数据交换的公共格式。.NET对所有应用程序和系统的输入/输出均以XML来封装数据,这样就可以方便地交换数据,而不必再进行特定的转换。SOAP(Sample Object Access Protocol)是一种以XML为基础的分布式对象通信协议,支持在SOAP的应用程序之间,利用现有的互联网结构实现彼此沟通,而不会被防火墙阻碍。但一般的程序设计者,不必过多了解底层的通信协议,这是.NET开发环境提供的功能。1.1.5 C#的运行环境及安装

C#是Visual Studio.NET的一部分。作为一个强大的集成开发工具,Visual Studio.NET对系统环境有较高的要求。因此,在安装C#2012之前要全面确定所使用计算机的软、硬件配置情况,看看是否能达到基本配置的要求,以便正确地安装并全面地使用其强大的功能。

1.硬件要求

Visual C#2012用户计算机的配置需要达到“Windows 7”(或者Windows 8)的硬件要求。

· 中央处理器(CPU):建议采用 1 GHz或以上 32位(X86)或者 64位(X64)处理器。

· 内存(RAM):当系统运行时 Visual Studio.NET的 IDE和操作系统都要占用不少的内存空间。因此,至少配置为 1 GB(32位),推荐 2 GB(64位)内存以上。

· 硬盘:20 GB(32位)或 40 GB(64位)以上可用硬盘空间。

· 显示器:DirectX9显卡带有 WDDM1.0或以上的驱动。推荐配置 1 024×768分辨率以上的全彩显示器,因高配置显示器可方便地显示开发环境提供的多个不同功能窗口等。

2.软件要求

· 操作系统:Windows 8、Windows 7、Windows Vista或 Windows XP。

· 后台数据库:推荐 SQL Server Express,Access 2008或 SQL Server 2008以上版本。

注意:中文版的Visual Studio.NET不再支持在Windows Me和Windows 95/98系统上安装。

Visual Studio.NET 2012用户计算机的配置对应Windows 8的需要,应该达到“Windows 7”的硬件要求;为运行一些特殊功能,还需要具备高分辨率的显示器、触屏显示器等。

Windows 8家庭普通版64位,最低要求如下。

CPU:1.2 GHz 64位双核处理器;内存:1 GB DDR2代内存;显卡:支持集成显卡128 MB;至少有 20 GB有效硬盘空间;声卡:至少支持 16位 41 000 Hz。

推荐配置:CPU:1.6 GHz 64位双核处理器;内存:2 GB DDR2内存;显卡:256 MB独显;至少 25 GB有效硬盘空间;声卡:24位 48 000 Hz。

3.C#的安装

C#是Visual Studio.NET的一部分,同其他的.NET语言一样,都必须在.NET框架环境下运行。因此,要建立一个完整的C#开发平台,必须安装Visual Studio.NET和.NET Framework SDK(.NET框架软件开发工具包)。

系统中无论安装的是Windows 7还是Windows 8,只要硬件配置满足C#的要求,都可以安装C#。虚拟光驱加载Visual Studio 2012镜像如图1-2所示。(1)插入Visual Studio 2012 光盘,或者用虚拟光驱加载 Visual Studio 2012 镜像,如图1-2所示。打开光驱或者虚拟光驱,双击 s_ultimate.exe 打开安装包。(2)稍等片刻,选择安装的磁盘位置,并同意条款和条约,然后单击“下一步”安装继续,如图1-3所示。(3)选择安装功能与组件,单击“安装”按钮,开始安装,如图1-4所示。图1-2 虚拟光驱加载 Visual Studio 2012镜像图1-3 选择磁盘安装位置图1-4 选择安装功能与组件(4)等待,安装结束后,显示“安装成功”界面,单击“启动”按钮,可启动Visual Studio 2012。安装成功后,程序自动在“开始”菜单创建VS 2012的所有程序组。启动 VS 2012进入启动界面,稍等片刻,第一次运行 Visual Studio 程序会自动配置运行环境。(5)进入默认环境设置,根据自己的需要设置默认环境,如果使用多钟语言进行开发,则可选择“常规开发设置”,设置完毕后单击“启动Visual Studio”启动程序,如图1-5所示。图1-5 设置默认环境(6)进入Visual Studio 2012开发环境,安装完成,如图1-6所示。图1-6 Visual Studio 2012 开发、运行环境

1.2 C#集成开发环境

1.2.1 C#的启动

由于Visual Studio.NET所包括的各个语言工具,都使用相同的集成开发环境,所以在启动C#之前,要启动整个Visual Studio.NET。这时在“开始”菜单中选择“程序”→“Microsoft Visual Studio 2012”→“Microsoft Visual Studio 2012”命令,打开“起始页-Microsoft Visual Studio”窗口。启动C#开发环境有两种方式:一种是单击“起始页”上的“打开项目”,选择现在已存在的C#项目文件;另一种是单击“起始页”上的“创建项目”,则打开一个“新建项目”对话框,如图1-7、图1-8所示。

在“项目类型”框(已安装模板)中选择“Visual C#”项目,然后在“模板”框中任意选择一个项目模板(若是开发Windows应用项目,则选择“Windows窗体应用程序”),并在下面“名称”文本框中设置新项目名称,然后单击“确定”按钮,一个新的C#的项目就创建了,并进入Visual Studio.NET的集成开发环境,如图1-9所示。图1-7 起始页图1-8“新建项目”对话框图1-9 C#集成开发环境1.2.2 C#集成开发环境

C#的集成开发环境集成了设计、开发、编辑、测试和调试的多种功能,使得开发人员能够方便、快速地开发应用程序。

集成开发环境标题下面是菜单栏和工具栏。中央工作区是用来设计程序界面的窗体设计器和代码编辑窗口。除此之外,集成开发环境的四周有很多浮动窗口。

1.菜单栏

在菜单栏中,有若干菜单标题,每个菜单标题有一个下拉式菜单,主要菜单标题如下。(1)文件(File):主要包括新建(New)、打开(Open)、保存(Save)、新建项目(New Project)以及打开和关闭解决方案等命令。(2)编辑(Edit):主要包含以Windows风格进行文件编辑的各项命令,如撤销(Undo)、复制(Copy)、粘贴(Paste)、删除(Delete)、查找(Find)和替换(Replace)等命令。(3)视图(View):包含显示与隐藏工具栏、工具箱和各种独立工具窗口的所有命令。(4)项目(Project):包括向当前项目添加、改变和删除组件、引用Windows对象和添加部件等命令。(5)生成(Build):包含代码生成的有关命令。(6)调试(Debug):包含调试程序的命令,启动和中止当前应用程序运行的命令。(7)团队(Team):连接到Team Foundation Server(N)…(8)数据(Data):包含显示、添加新数据源,添加查询数据和T-SQL编辑器等命令。(9)格式(Format):包括改变窗体上控件大小和对齐方式等命令。(10)工具(Tools):包括进程调试、数据库连接、宏和外接程序管理、设置工具箱、WCF服务配置编辑器和选项等命令。(11)测试(S):创建、编辑和运行测试等。(12)体系结构:新建关系图、生成依赖项关系图、配置默认代码生成设置、导入XMI、UML模型资源管理器等。(13)分析:启动性能分析、启动已暂停的性能分析、启动性能向导、探查器等。(14)窗口(Window):包含一些屏幕窗口布局的命令。(15)帮助(Help):包含方便开发人员使用帮助信息的命令、MSDN 论坛等。

2.工具栏

工具栏是由多个图标按钮组成的,可提供对常用命令的快速访问。除了在菜单栏下面显示的标准工具栏外,还有Web工具栏、控件布局工具栏、团队资源管理器等多种特定功能的工具栏。要显示或隐藏这些工具栏,可选择“视图”菜单中的“工具栏”命令,或者在标准工具栏单击鼠标右键,在弹出的菜单中选定所需的工具栏。

标准工具栏各按钮如图1-10所示。图1-10 标准工具栏

在C#的集成开发环境中,可以显示很多具有特定功能的窗口。为了方便程序开发人员的使用,通常可以将已打开的功能窗口重叠在同一位置上,通过切换其顶部或底部的选项标签就可以在不同的窗口之间切换。可以选择“视图”菜单下的相关命令显示或关闭这些功能窗口。单击窗口右上角的按钮可以把窗口固定在所在的位置,这时该按钮变成,再次单击这个按钮,可以使窗口重新浮动。例如,集成开发环境中间的工作区通常用来显示窗体设计器和代码编辑窗口(当然也可以将别的功能窗口拖动到这个位置上来,例如图1-9中的工具箱窗口),在此例中,单击其上方的“Form1.cs[设计]”标签可以切换到代码窗口,单击“Form1.cs”标签可以切换到窗体设计器。工作区右侧的两个浮动功能窗口是解决方案资源管理器与团队资源管理器,可以单击窗口下面的标签在两个窗口之间切换(其下面是属性窗口)。下面简要介绍一下C#集成开发环境中的主要功能窗口。

3.工具箱

工具箱中包含了建立应用程序的各种控件以及非图形化的组件,如图1-11所示。

工具箱由不同的选项卡组成,各类控件、组件分别放在“数据”、“组件”、“所有Windows窗体”、“对话框”、“常规”、公共控件、容器、打印等选项卡下面。(1)“数据”选项卡中主要放置访问数据库的控件。(2)“组件”选项卡中放置一些系统提供的组件,如时钟、消息队列等。(3)“对话框”选项卡中放置一些系统提供的对话框,如颜色、打开文件等。(4)“常规”选项卡默认为空,可以在这里保存常用的空间,包括自定义控件。(5)“所有Windows窗体”选项卡是最常用的选项卡,这个选项卡主要放置开发Windows应用程序所使用的控件,如文本框、标签框等,以后会陆续介绍这些控件。

4.解决方案资源管理器

在C#中,项目是一个独立的编程单位,其中包含窗体文件和其他一些相关的文件,若干个项目就组成了一个解决方案。“解决方案资源管理器”对话框如图1-12所示。它以树状的结构显示整个解决方案中包括哪些项目以及每个项目的组成信息。图1-11 工具箱窗口图1-12“解决方案资源管理器”对话框

在C#中所有包含C#代码的源文件都是以.cs为扩展名的,而不管它们是包含窗体还是普通代码,在解决方案资源管理器中显示这个文件,然后就可以编辑它了。在每个项目的下面显示了一个引用,在这里列出了该项目引用的组件。“解决方案资源管理器”对话框的上边有几个选项按钮,例如“刷新”、“显示”和“属性”等。通常,解决方案资源管理器隐藏了一些文件,单击“显示”选项按钮,可以显示出这些隐藏的文件。“刷新”选项按钮的作用是可以对没有保存的项目文件进行刷新。单击“属性”选项按钮,则可以打开“属性”窗口,显示所选择对象的属性。

5.“属性”窗口“属性”窗口如图1-13所示,它用于显示和设置所选定的控件或者窗体等对象的属性。在设计应用程序时,可通过“属性”窗口设置或修改对象的属性。“属性”窗口由以下部分组成。(1)对象列表框:标识当前所选定对象的名称及所属的类。单击其右边的下拉按钮,可列出所含对象的列表,从中选择要设置属性的对象。(2)选项按钮:常用的左边两个分别是“按分类顺序”、“按字母顺序”选项按钮,可选择其中一种排列方式,显示所选对象的属性。“按分类顺序”是根据属性的性质,分类列出对象的各个属性;“按字母顺序”是按字母顺序列出所选对象的所有属性。(3)属性列表框:属性列表框由中间一条直线将其分为两部分,左边列出所选对象的属性名称,右边列出的是对应的属性值,可对该属性值进行设置或修改。如果属性值右侧有“…”或“▼”按钮,表示都有预定值可供选择。

6.代码编辑窗口

代码编辑窗口是专门用来进行代码设计的窗口,各种事件过程、模块和类等源程序代码的编写和修改均在此窗口进行,如图1-14所示。图1-13“属性”窗口图1-14 代码编辑窗口

从“视图”菜单中选择“代码”命令、按F7键、用鼠标双击窗体或者窗体上的一个控件均可以打开代码编辑窗口。

代码编辑窗口左上方为对象列表框,单击其下拉按钮,可显示项目中全部对象的名称。右上方是事件、方法列表框,列出了所选定对象相关的事件、方法。通常,在编写事件过程时,在“对象列表框”中选择对象名称,然后在“事件、方法列表框”中选择对应的事件过程名称,即可在代码编写区域中构成所选定对象的事件过程模板,可在该事件过程模板中编写事件过程代码。

在 C#的代码编辑窗口中有两个显著的特点。其一是表示项目窗体和控件的代码,现在均是可见的,如图 1-14所示的代码编辑器窗口中“public partial class Form1”就是窗体Form1的代码段。其二是 C#的代码窗口就像 Windows资源管理器左边的树状目录结构一样,一个代码块、一个过程,甚至是一段注释都可以叠为一行,例如,在图 1-14 代码编辑窗口中,可以看到有几行代码左边有“+”号或“-”号,单击“-”号可以将一段代码隐藏起来,只显示第一行,而单击“+”号,可以将其展开。这样使得程序结构一目了然,方便了代码的管理,更有利于程序的开发和设计。

7.窗体设计器

当创建和打开一个C#项目时,在其集成开发环境中的中间工作区域,将显示一个窗体设计器。窗体是一个容器,能够放置应用程序所需要的所有控件以及图形、图片,并可随意改变大小和移动方向。窗体设计器是用于设计和编制应用程序的用户接口,即设计应用程序的界面。C#应用程序的设计,是以窗体为依托进行设计的。应用程序中的每一个窗口都有它自己的窗体设计器,其中最常用的窗体设计器是Windows窗体设计器。在这个窗体设计器上可以拖动各种控件,创建Windows应用程序界面。除此之外,在C#中创建项目时,还会遇到用于创建Web界面的Web窗体设计器。

8.其他窗口(1)“类视图”窗口:如图1-15所显示的“类视图”窗口,按照树状结构列出了解决方案里各个类以及其中包含的事件、方法和函数等。双击视图中的一个元素,即可打开这个元素的代码窗口,这对于浏览代码是一种很方便的方式。(2)“对象浏览器”窗口:在“对象浏览器”窗口中,可以方便地查找程序中使用的所有对象的信息,包括程序中引用的系统对象和用户自定义的对象。

对象浏览器的左边窗口以树状分层结构显示系统中所用到的所有类。双击其中一个类,在右边窗口中就显示出这个类的属性方法、事件等。“对象浏览器”窗口如图1-16所示。图1-15“类视图”窗口图1-16“对象浏览器”窗口(3)服务器资源管理器:C#是面向网络的开发工具,在软件开发中,利用服务器资源管理器可以方便地监控和管理网络上的其他服务器。“服务器资源管理器”窗口如图1-17所示。(4)“输出”窗口:在“输出”窗口中,可以输出程序运行时产生的信息,包括应用程序中设定要输出的信息和编程环境给出的信息,如图1-18所示。(5)命令窗口:“命令窗口”为用户提供了一个用命令方式与系统交互的环境,如图1-19所示。在“命令窗口”中,用户可以直接使用C#的各种命令,例如直接输入“toolbox”命令,就可以调出工具箱。图1-17“服务器资源管理器”窗口图1-18“输出”窗口图1-19“命令窗口”

习题

1-1 Visual Studio.NET和C#主要的特性有哪些?C#4.0、VS 2012和VS 2015有何新功能?

1-2 运行Visual Studio.NET 2012、2015需要什么样的硬件环境?

1-3 运行Visual Studio.NET需要什么样的软件环境?

1-4 C#集成化开发环境中有哪些窗口?各窗口的主要作用是什么?若在设计时想进入代码窗口,应怎样操作?

1-5 C#集成开发环境由哪些部分组成?每个部分的主要功能是什么?

第2章 简单的C#程序设计

本章讲述C#程序设计有关的基础知识,包括C#程序基本结构、编译程序以及一些基本的输入/输出操作等。

2.1 C#程序结构

在介绍C#基础知识之前,先来编写本书中的第一个C#程序,这是一个最基本的C#应用程序。2.1.1 第一个C#程序

下面将使用Visual Studio.NET提供的项目模板来创建一个控制台应用程序(Console Application)。这个程序将在窗口中显示“欢迎使用C#”字符串。

要创建C#控制台应用程序,首先选择“文件”→“新建”→“项目”命令,打开“新建项目”对话框,如图2-1所示。图2-1“新建项目”对话框

在该对话框中,从左边的“已安装的模板”列表框中选择“Visual C#”选项,然后在中间的列表框中选择“控制台应用程序”选项。此时,对话框下面的“名称”文本框中将会给出一个默认的名称,并且“位置”文本框中将会给出项目文件所处的目录。用户可以根据需要改变项目的名称;如果要改变项目的位置,则可以通过单击“位置”文本框右边的“浏览”按钮,打开“项目位置”对话框来选择一个目录。在本例中,项目名称为Welcome,项目文件保存在E:\C#目录中,如图2-1所示。

最后,单击“确定”按钮,关闭“新建项目”对话框,让Visual Studio.NET为用户自动生成代码。图2-2给出了自动生成的代码,这些代码的意义以后将会介绍,现在删除窗口中的代码,输入例2-1所示的代码。图2-2 Welcome项目【例2-1】 第一个C#程序(eg01)。

这样,第一个C#程序就创建好了。2.1.2 编译和执行程序

要编译一个C#应用程序,要从“生成”菜单中选择“生成解决方案”命令。这时,C#编译器将会开始编译、链接程序,并最终生成可执行文件。

当在编译过程中出现错误时,Visual Studio就会打开如图2-3所示的“错误列表”窗口,并在其中列出编译过程中所遇到的每一条错误。用户可以通过双击“错误列表”窗口中的错误项直接跳转到对应的代码行。图2-3“错误列表”窗口

如果程序中没有错误,编译器将会生成可执行文件。在Visual Studio中,用户可以采用两种方式运行程序:一种是调试运行,另一种是不进行调试而直接运行。要调试运行程序,可以通过使用“调试”→“启动调试”命令或工具栏的启动调试按钮或者直接按下F5键;要直接运行程序,则使用“调试”→“开始执行”命令或按Ctrl+F5组合键。运行本例中的程序,将显示如图2-4所示的窗口。图2-4 程序结果显示窗口2.1.3 C#程序结构分析

下面用2.1.1节的简化代码来分析eg01程序,并借此来分析C#应用程序的结构。

1.命名空间

在eg01程序中的第一条语句using System语句表示导入System命名空间。程序eg01里Console.WriteLine(“欢迎使用C#”)这条语句中的Console是System命名空间中包含的系统类库中定义好的一个类,它代表系统控制台,即字符界面的输入和输出。

C#程序是用命名空间来组织代码,要访问某个命名空间中的类或对象,必须用如下语法:

命名空间.类名

由于Console类位于System命名空间中,所以实际上用户在访问Console类时,完整的写法应该是:

但是,在程序的第一行,使用了:

试读结束[说明:试读内容隐藏了图片]

下载完整电子书


相关推荐

最新文章


© 2020 txtepub下载