第二章-C#与Visual-Studio开发环境.doc_第1页
第二章-C#与Visual-Studio开发环境.doc_第2页
第二章-C#与Visual-Studio开发环境.doc_第3页
第二章-C#与Visual-Studio开发环境.doc_第4页
第二章-C#与Visual-Studio开发环境.doc_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第二章 C#与Visual Studio开发环境本章将从C#语言和.NET技术的概貌入手,依次介绍Visual Studio集成开发环境和C#程序的组成结构。2.1 C#语言与.NET技术简介C语言曾经是最为流行的一种结构化程序设计语言,C+则在C的基础上增加了对面向对象的支持。但严格说来,C+并不是完全面向对象的程序设计语言;为了和C语言 相兼容,C+保留了许多低级特性,因此具有较大的灵活性和较强的底层控制能力。不过,这种灵活性和控制能力也是一把“双刃剑”,它导致了C+学习困难、程序过于复杂、安全性难以保证等问题。正如低级语言被高级语言逐步取代一样,程序设计语言的发展就是不断增强抽象描述能力、屏蔽底层实现细节、提高软件生产效率的过程。随着面向对象的优越性被广泛接受,人们需要更加符合现代软件开发要求的面向对象程序设计语言,C#因此应运而生。它汲取了C+、Java、Delphi等多种语言的精华,具有语法简洁、类型安全和完全面向对象等特点,自2000年一经推出便取得了巨大的成功。C#语言简单易学,它将内存管理、设备驱动、控制优化等底层操作交给.NET Framework实现,这样开发人员就能够把注意力集中在问题模型和程序逻辑上,而不必去关心过多的底层细节。概括地说,.NET是一个建立在开放网络协议和标准之上的计算平台,.NET Framework则是平台上的基础编程框架,它由以下两个部分组成。l 公共语言运行时(Common Language Runtime,CLR)。它提供了.NET应用程序运行时环境,负责管理代码的执行、提供元数据类型支持和各种系统服务。l .NET类库。它定义了功能丰富的类型集合,能够为应用程序提供基本类型、通用数据结构、Windows和Web界面设计、数据库访问、XML Web Service、异常处理等各种组件服务。.NET Framework支持C#、Visual Basic、Java、Visual C+.NET等多种语言,这些高级语言代码会被编译为通用中间语言(Intermediate Language,IL)代码,该语言类似于低级语言,但其代码与具体的硬件平台无关;之后CLR再针对特定的平台将IL程序翻译为机器指令,加载所需要的资源并管理程序的执行。这也使得.NET平台上不同语言能够方便进行通信,解决了困扰人们已久的多语言集成的难题。随着C#语言的流行和用户的增加,C#也得到了不断的改进和完善。2005年C#升级到了2.0版本,其最大的特点是增加了对泛型程序设计(Generic Programming)的支持。2008年C#正式升级为3.0版本,其中增加了Lambda表达式、隐式类型、扩展方法等特性,从而支持一种全新的面向对象的数据访问模型,即LINQ(Language Integrated Query)模型。.NET Framework也随之进行了相应的版本升级,为.NET应用开发提供了更有效的支持。2.2 Visual Studio开发环境2.2.1 集成开发环境概述Visual Studio集成开发环境将代码编辑器、编译器、调试器、图形界面设计器等工具和服务集成在一个环境中,能够有效提高软件开发的效率。Visual Studio.NET是最流行的.NET应用程序集成开发环境,开发的每一个程序集对应一个项目(Project),而多个相关的项目又可以组成一个解决方案(Solution)。启动Visual Studio.NET开发环境,可以看到如图2-1所示的主界面,主要包括以下几个部分。l 菜单栏:位于标题栏的下方,其中包含了用于开发、维护、编译、运行和调试程序以及配置开发环境的各项命令。l 工具栏:位于菜单栏的下方,提供了常用命令的快捷方式。l 代码编辑区:位于开发环境中央,是编辑代码和设计程序的主要区域。l 输出窗口:位于代码编辑区的下方,用于输出当前操作的结果。l 解决方案资源管理器:位于开发环境的右侧,它通过树形视图对当前解决方案进行管理,解决方案是树的根节点,解决方案中的每一个项目都是根节点的子节点,项目节点下则列出了该项目中使用的各种文件、引用和资源。l 服务器资源管理器:位于开发环境的左侧,用于快速访问本地或网络上的各项服务器资源。l 属性窗口:位于解决方案资源管理器的下方,用于查看或编辑当前所选元素的具体信息。l 状态栏:位于开发环境的底部,用于对光标位置、编辑方式等当前状态给出提示。图2-1 Visual Studio集成开发环境图2-1给出的是Visual Studio各窗口的默认位置,用户可以根据需要来移动、调整、打开或关闭,或是通过“视图”菜单来控制它们的显示;其中大部分窗口还可以通过选项卡的方式切换,如代码编辑区可一次打开多个源文件,这就能最大程度地利用有限的屏幕空间。其他常用的窗口还有管理程序中的类及其关系的类视图、作为控件集合的工具箱等。Visual Studio解决方案将被保存为.sln文件,而单个C#程序项目则会被保存为.csproj文件。接下来介绍使用Visual Studio创建4中基本的C#应用程序的步骤。2.2.2 创建控制台应用程序如果要在Visual Studio开发环境中创建程序P2_1,可以通过菜单命令“文件”|“新建”|“项目”打开如图2-2所示的对话框,在左侧的“项目类型”视图中选择“Visual C#”,在右侧的“模板”视图中选择“控制台应用程序”模板,输入项目名称(P2_1),必要时可以指定项目存放的位置及所属的解决方案,之后单击“确定”按钮,此时Visual Studio就会自动完成下面的工作。(1)将.NET类库中的基本程序集添加到项目引用中。(2)生成C#源文件program.cs,其中包含对常用命名空间的引用,以及程序命名空间、主程序类和Main方法的基本框架。(3)生成项目配置文件,在其中保存项目的基本信息。图2-2 “新建项目”对话框之后开发人员就可以编辑源文件中的程序代码,必要时可以增加源文件、程序集引用和其他资源,并通过菜单命令编译和运行程序。此外,使用快捷键F6可以直接编译程序,使用快捷键F5可以直接运行程序,使用快捷键Ctrl+F5可以不调试而直接运行程序。2.2.3 创建和使用动态链接库程序如果要创建动态链接库程序,可以在图2-2所示的“新建项目”对话框中选择“类库”模板,之后同样可以编写代码来定义各种类型及其成员。不过此类项目只能编译成动态链接库文件,而不能直接运行。2.2.4 创建Windows应用程序如果要创建Windows应用程序,可在图2-2所示的“新建项目”对话框中选择“Windows应用程序”模板。这时Visual Studio会为项目生成两个C#源程序文件,一个是Form1.cs;在解决方案资源管理器中双击该文件即可以打开窗体设计视图,如图2-3所示,此时在Visual Studio工具箱中可以看到一系列可用的Windows窗体控件,其中“公用控件”选项卡下面包含了按钮、文本框、单选框等常用的Windows控件,通过鼠标拖放操作就可以把这些控件添加到窗体上。图2-3 工具箱与窗体设计视图另一个是文件是program.cs,其中定义了包含Main方法的主程序类program,其代码如下。using System;using System.Collections.Generic;using System.Windows.Forms;namespace P2_3 static class Program static void Main() Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); Application.Run(new Form1(); 代码中的Application类表示当前的Windows应用程序,其Run方法用于在程序启动时打开主窗体Form1,它和Form类都在System.Windows.Forms命名空间下定义。2.2.5 创建ASP.NET网站程序在Visual Studio中还可以方便地创建ASP.NET应用程序。通过菜单命令“文件”|“新建”|“网站”打开如图2-4所示的对话框,在“模板”列表中选择“ASP.NET网站”选项,在“语言”下拉列表框中选择“Visual C#”选项,必要时指定项目的存放位置,然后单击“确定”按钮,Visual Studio就会创建一个基本的网站框架,包括一个网站配置文件web.config和一个默认网页Default.aspx。选中当前项目,通过菜单命令“网站”|“添加新项”,在打开的对话框中选择“Web窗体”,就可以向项目中加入新的网页。图2-4 “新建网站”对话框ASP.NET网站项目的每一个网页都包含两个文件:一个设计文件(后缀为.aspx)和一个C#源代码文件(后缀为.aspx.cs)。打开一个网页设计文件,此时在Visual Studio工具箱中可以看到一系列可用的Web窗体控件,如按钮、文本框、单选框等,通过鼠标的拖放操作可以把这些控件添加到网页中。2.3 C#程序的基本结构下面先看一个非常简单的C#程序,它用于在屏幕上输出一行文字“欢迎光临!”。/程序P2_1using System;namespace P2_1public class programpublic static void Main()Console.WriteLine(“欢迎光临!”);可在任何一种文本编辑器(如记事本或Microsoft Word)中输入上述代码,将其保存为文件“P2_1.cs”(后缀.cs表示C#源程序文件),而后打开命令行窗口,使用C#编译器csc.exe编译程序(必要时指定源文件所在的目录)就能生成可执行文件P2_1.exe。程序的编译和运行结果如图2-1所示。图2-5 编译和执行C#程序P2_1接下来分析一下该程序的基本结构。2.3.1 注释程序P2_1的第一行以两个反斜杠“/”开头,表示程序的注释,在它同行右边的内容会被编译器忽略,不对程序的运行产生任何影响。如果要写多行注释,可以每一行都以“/”开头,或是将所有的注释内容都放在一对标记“/*”和“*/”之间,例如:/*程序P2_1该程序的功能是在屏幕上输出一行文字“欢迎光临!”*/但多行注释标签不可以嵌套。例如,对于下面的代码,编译器会将第一行开头的“/*”到第二行末尾的“*/”之间的内容视为注释,将第三行的“*/”视为非法代码。/*程序P2_1/*该程序的功能是在屏幕上输出一行文字“欢迎光临!”*/*/注释可以出现在程序代码的任何位置,主要用于对代码的功能和用途进行说明,从而提高程序的可读性,便于理解和修改程序。程序员都应当养成注释代码的良好习惯。2.3.2 命名空间程序中常常需要定义很多的类型,为了便于类型的组织和管理,C#引入了命名空间的概念。一组类型可以属于一个命名空间,而一个命名空间也可以嵌套在另一个命名空间种,从而形成一个逻辑层次结构,这就好比目录式的文件系统组织方式。程序P2_1的第二行通过关键字“using”引用了一个.NET类库中的命名空间“System”,之后程序就可以自由使用该命名空间下定义的各种类型了。程序的第三行则通过关键字“namespace”定义了一个新的命名空间“P2_1”,在其后的一对大括号“”中定义的所有类型都属于该命名空间。命名空间的使用还有利于避免命名冲突。不同开发人员可能会使用同一个名称来定义不同的类型,在程序相互调用时可能会产生混淆,而将这些类型放在不同的命名空间中就可以解决此问题。 2.3.3 类型及其成员在C#引用中,类是最为基本的一种数据类型,类的属性也叫“字段”(field),类的操作,即“方法”(method)。类使用关键字“class”来定义,程序P2_1就定义了一个名为“program”的类,并为其定义了一个方法“Main”,在其中执行文本输出的功能:public static void Main()Console.WriteLine(“欢迎光临!”);这里Main方法的功能是通过调用Console类的WriteLine方法来完成的。WriteLine方法的输入参数是用一对双引号括起来的字符串,表示要输出显示的文本。如果要显示定义的字符串对象,Main方法中的代码可以改写如下:string s=“欢迎光临!”Console.WriteLine(s);Console类是.NET类库的System命名空间下定义的一个类,表示对控制台窗口的抽象。由于程序一经引用了该命名空间,因此Main方法的代码中可以直接使用该类。如果输出程序的第二行,在使用Console类时还需要指定该类所属的命名空间,如下:System.Console.WriteLine(“欢迎光临!”);Console类是控制台应用程序与用户交互的基础,表2-1列出了一些常用的输入输出方法。表2-1 Console类常用成员方法方法输入参数返回值作用Read无整数读入下一个字符ReadKey无ConsoleKeyInfo对象读入下一个字符ReadLIne无字符串读入一行文本,至换行符结束Write任意对象无输出一行文本WriteLine任意对象无输出一行文本,并换行同理,在其他程序中使用程序P2_1中的program类也可以采用这两种方式:一是直接使用全称“P2_1.program”;二是先在其他程序中引用命名空间P2_1,然后使用简称program。不过,如果存在命名空间冲突,那么就必须使用全称来加以区分。程序P2_1虽然简单,但我们从中看到了C#应用程序的基本结构:命名空间下包含类,类可以包含成员数据(字段)和成员函数(方法),方法中又包含执行代码。这种包含关系都是通过一对大括号来表示的。2.3.4 程序的主方法程序的功能是通过执行方法代码来实现的,每个方法都是从其第一行代码开始执行,直到执行完最后一行代码结束,期间可以通过代码来调用其他的方法,从而完成各种各样的操作。应用程序的执行必须要有一个起点和一个终点。C#程序的起点和终点都是由Main方法定义的,程序总是从Main方法的第一行代码开始执行,在Main方法结束时停止程序的运行。因此,对于C#可执行程序,其中必须有一个类定义了Main方法,编译器会确定该方法作为程序的入口。如果多个类中都定义了Main方法,那么还要明确指定其中一个作为主方法。例如,下面的编译命令使用main选项将program类中的Main方法作为程序的主方法。csc /main:program P2_1.cs2.3.5 程

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论