2023年12月30日发(作者:)
第一章语言概述第1章C#语言概述与.NET平台本章将对C#程序设计语言的主要特点、.NETFrameworks、VisualStudio2010的新特性及安装进行简单的介绍。并对C#语言与其他程序设计语言进行了比较,通过创建简单的C#程序简单了解C#程序的基本结构,熟悉MicrosoftVisualStudio2010开发环境的界面。知识目标:了解C#语言的主要特点。了解C#语言与其他程序设计语言的不同之处。了解.NETFrameworks的概况。了解VisualStudio2010的新特性。熟悉VisualStudio2010开发环境。掌握使用C#创建简单的控制台应用程序。掌握C#程序的基本结构。1.1C#语言概述C#(Csharp)是微软对这一问题的解决方案。C#是一种最新的、面向对象的编程语言。它使得程序员可以快速地编写各种基于平台的应用程序,提供了一系列的工具和服务来最大程度地开发利用计算与通讯领域。使用C#语言可以开发在.NETFramework上运行的多种应用程序,包括:控制台应用程序、Windows窗体应用程序、Web应用程序以及Web服务等。正是由于C#面向对象的卓越设计,使它成为构建各类组件的理想之选——无论是高级的商业对象还是系统级的应用程序。使用简单的C#语言结构,这些组件可以方便的转化为XML网络服务,从而使它们可以由任何语言在任何操作系统上通过Internet进行调用。最重要的是,C#使得C++程序员可以高效的开发程序,而绝不损失C/C++原有的强大的功能。因为这种继承关系,C#与C/C++具有极大的相似性,熟悉类似语言的开发者可以很快的转向C#。1.1.1C#的主要特点:1.完全面向对象。2.解释性:C#也是一种特殊的解释性语言。3.跟Java类似:C#代码经过编译后,成为了一种IL(中间语言)。在运行时,再把IL编译为平台专用的代码。4.健壮:C#在检查程序错误和编译与运行时错误一点也不逊于Java,C#也用了自动管理内存机制。第1页
第一章语言概述5.C#不像Java那样完全摒弃了指针和手动内存管理。C#默认情况下是不能使用指针的,程序员在有必要时可以打开指针来使用。这样可以保证编程的灵活性。6.组件模式:C#很适合组件开发。各个组件可以由其他语言实现的,然后集成在.net中。7.支持分布式:之所以有C#,是因为微软相信分布式应用程序是未来的趋势,即处理过程分布在客户机和服务器上。所以C#一出生就注定了能很好解决分布式问题。8.高性能:C#把代码编译成中间语言后,可以高效的执行程序。9.可移植性:由于C#使用类似Java的中间语言机制。使得C#也跟Java类似,可以很方便的移植到其他系统。在运行时,再把中间代码编译为适合特定机器的代码。10.安全性:C#的安全性是有.net平台来提供的。C#代码编译后成为IL语言。是一种受控代码,.net提供类型安全检查等机制保证代码是安全的。11.多线程:与Java类似,可以由一个主进程分出多个执行小任务的多线程。1.1.2C#与java、C++的比较C#是在Java流行起来后所诞生的一种新的语言。由于微软在操作系统上占有很大的优势。在以往的开发中累积了不少经验,所形成的.net平台,所以C#在Windows方面可以说比Java具有更大的优势。如果单纯从技术上来讲,C#在网络编程上可以与Java匹敌。C#还在WindowsForms也有一定的优势。C#是一种非常类似于C++的语言,风格是更接近于Java,不管是C++程序员还是Java程序员,都可以很方便的转到C#上来。总的来说,C++高效但是不安全,Java(跨平台)安全但是较低效,C#安全且较高效。表1-1列出了这三种OOP语言在若干功能和特点方面的比较。表1-1功能跨平台执行方式中间代码运行环境内存管理多重类继承操作符重载对象访问地址/指针第2页C++、Java与C#的比较Java字节码编译+解释字节码BytecodeJRE/JVM垃圾内存自动回收不支持不支持引用C#CLI(不流行)编译+JIT转换中间语言MSILCLR/VES垃圾内存自动回收不支持部分支持引用C++源代码(部分)编译无操作系统直接分配和删除支持支持
第一章语言概述接口类型属性成员成员可用性命名空间指针函数指针全局函数与变量无符号整数类型大十进制数类型强制类型转换越界自动检查多维数组索引泛型泛型类型编译线程同步异常处理标准类库无无不支持支持支持支持有有无支持无数组的数组支持编译时模板具体化调用函数可选贫乏面向对象的系统和界面编程有无使用反射包机制不支持适配器+监听程序无无有(库)不支持有数组的数组不支持运行时泛型(有限制)类型擦除语言内部支持检查异常丰富跨平台(服务器端)网络编程有有使用反射支持部分支持(非安全代码)委托无有有(语言)支持有真正多维数组支持编译时模板具体化语言内部只支持非检查异常庞大Windows平台的.NET和组件编程适用领域第3页
第一章语言概述mework概述.NET框架是针对开发者提出的一个概念,开发者在进行开发时,要利用开发工具编写源代码,编译后将程序部署到客户端,让它运行,这是一整套开发过程。传统的开发过程可以使用VB、VC等不同的开发工具,但在.NET框架下,可以统一开发过程,.NET框架包含两个部分:公共语言运行库和类库。公共语言运行库的概念和Java虚拟机相似,是一个虚拟的运行环境,开发的应用程序都在这个运行库上运行;另一部分是类库,类库支持开发者的功能和系统调用,所以,在类库的支持下,才能开发在公共语言运行库上运行的应用程序。下面从左到右来看这幅图,在.NET框架的支持下,可以利用各种不同的编程语言来开发应用程序,这些编程语言最终产生的程序的内在都是一样的,它们的源代码会被统一地编译成微软中间代码,它是一种专门在虚拟平台上运行的代码,类似于Java的Bytecode字节码。中间代码在公共语言运行库的支持下运行,如果虚拟代码要在x86CPU上运行,就必须转换成机器码,那么公共语言运行库有这样的机制,帮助我们在运行的时候把中间代码(MSILCode)转换成本地代码,这样本地代码就能在操作系统和计算机上运行。所以,.NET框架是开发者最需要关注的部分,应用程序的开发都是针对.NET框架的,应用程序也需要在.NET框架的支持下才能运行。对于开发者来说,所要学习和掌握的主要就是.NET框架,要了解如何使用一种编程语言(或C#)在.NET框架上开发应用程序。NETFramework是一种技术,该技术支持生成和运行下一代应用程序和XMLWebServices。.NETFramework旨在实现以下功能:1)提供一个一致的面向对象的编程环境,而无论对象代码是在本地存储和执行,还是在本地执行但在Internet上分布,或者是在远程执行的。2)提供一个将软件部署和版本控制冲突最小化的代码执行环境。3)提供一个可提高代码(包括由未知的或不完全受信任的第三方创建的代码)执行安全性的代码执行环境。4)提供一个可消除脚本环境或解释环境的性能问题的代码执行环境。5)使开发人员的经验在面对类型大不相同的应用程序(如基于Windows的应用程序和基于Web的应用程序)时保持一致。6)按照工业标准生成所有通信,以确保基于.NETFramework的代码可与任何其他代码集成。.NET框架提供了帮助开发应用程序的类库集。但.NET框架不仅仅是一种类库集。.NET框架是创建、部署和运行Web服务及其他应用程序的一个环境。.NET框架由如下几个部分组成。1)位于.NET框架最底层的结构是WINDOWSAPI和COM+服务。WINDOWSAPI是操作系统提供的一个很大的服务中心。调用这个服务中心的各种服务(每一种服务就是一个函数),可以帮应用程序达到开启视窗、描绘图形、使用周边设备等目的。COM+是一种组件标准。COM+紧紧地与操作系统结合起来,通过系统服务为应用程序提供全面的服务。WINDOWSAPI和COM+服务,这里简单了解一下即可。.NET框架建立在这个基第4页
第一章语言概述础上以后,从而使基于.NET框架开发的应用程序,可以充分利用系统提供的功能和资源。2)公共语言运行库主要是指对应用程序代码的管理,同时提供应用程序代码所需要的基本服务,例如内存管理、垃圾收集、结构化异常处理和多线程。同时也加强严格的类型安全和促进代码正确来确保程序的安全性和健壮性。为应用程序编写代码的时候,如果代码是针对公共语言运行库的,则认为是可管理的代码,否则将被认为是不可管理的代码。3).NETFramework类库是由基本数据类型和.NET核心功能类组成。基本数据类型包括数值类型、日期类型、字符串类型、数组和集合等等。.NET核心功能类则提供了文件输入/输出、线程、序列化和安全性等等这些方面的开发支持。4)数据层是由用来访问数据相关的类而组成的。与数据访问相关的部分通常被称为。就是ADO(ActiveXDataObject)在.NET中相对应的技术。XML层是由操作XML的相关的类而组成的。XML可以理解成一种文件格式,.NET用它来存储几乎所有类型的信息。5)既包含了用于生成Web界面的类,也包含了XMLWebservices,为Web应用程序开发提供支持。Windows窗体则包含了用于生成Windows界面的类。1.3VisualStudio2010VisualStudio2010是由微软公司推出的一个强大的集成开发环境(IntegratedDevelopmentEnviroment,IDE),从1998年的VisualStudio6.0到V1sualStudio2010无论是在界面上还是在功能上都有了显著的不同和改进。VisualStudio2010支持多种开发语言,VisualBasic、VisualC十十、VisualC#和VisualF#都可以使用。VisualStudio2010同时带来了NETFramework4.0、MicrosoftVisualStudio2010CTP(CommunityTechnologyPreview--CTP),并且支持开发面向Windows7的应用程序。除了MicrosoftSQLServer,它还支持IBMDB2和Oracle数据库。1.3.1VisualStudio2010的安装1、支持的操作系统及软件要求1)WindowsXP(x86)ServicePack3–除StarterEdition之外的所有版本2)WindowsVista(x86和x64)ServicePack2-除StarterEdition之外的所有版本3)Windows7(x86和x64)4)WindowsServer2003(x86和x64)ServicePack2–所有版本如果不存在MSXML6,则用户必须安装它5)WindowsServer2003R2(x86和x64)-所有版本6)WindowsServer2008(x86和x64)ServicePack2–所有版本7)WindowsServer2008R2(x64)–所有版本8)Web服务器:IIS5.0或以上版本。第5页
第一章语言概述9)IE:IE6或以上版本。10)平台架构:32位,64位。11)运行环境:meworkSDK。2、硬件要求1)1.6GHz或更快的处理器2)1024MBRAM(如果在虚拟机上运行,则为1.5GB)3)3GB的可用硬盘空间4)5400RPM硬盘驱动器5)以1024x768或更高显示分辨率运行且支持DirectX9的视频卡3、VisualStudio2010的安装1)、下载VisualStudio2010软件包2)、解压出来以后,点击安装包内文件,如下图1-1安装包所示图1-1安装包3)、进入VisualStudio的安装程序界面,点击“更改或移除MicrosoftVisualStudio2010”如下图1-2VisualStudio的安装程序界面所示第6页
第一章语言概述图1-2VisualStudio的安装程序界面4)、进入VisualStudio2010加载组件界面,单击下一步,如下图1-3VisualStudio2010加载组件界面所示图1-3VisualStudio2010加载组件界面5)、进入VisualStudio2010的许可协议界面,选择“我已阅读兵接受许可条款”,单击下一步,如下图1-4VisualStudio2010的许可协议界面所示图1-4VisualStudio2010的许可协议界面第7页
第一章语言概述6)、进入安装程序功能选择以及安装路劲选择界面,选择自己要安装的位置,单击下一步,如下图1-5安装路径选择界面所示图1-5安装路劲选择界面7)、进入程序安装功能选择界面,选择自己需要安装的某些程序,我这里把VB和VF都取消了,这两个对我来说没什么用,单击安装,如下图1-6安装功能选择界面所示图1-6安装功能选择界面8)、进入程序安装界面,这一步需要30分钟以上的时间,如果你选择的程序功能不是很多,那么这里可以快一点,具体时间根据实际安装时间来确认,如下图1-7程序安装界面所示第8页
第一章语言概述图1-7程序安装界面9)、安装完成以后,会提示安装成功如图1-8安装成功界面所示,我下面的SQLSERVER2008Pack安装失败对我没什么影响,单击完成。至此整个程序安装流程就结束了,可以正常使用VisualStudio了。图1-8安装成功界面第9页
第一章语言概述1.3.2VisualStudio2010的新特性大家都知道MicrosoftVisualStudio2010将在4月12日全球同步发布,目前已经进入候选发布(ReleaseCandidate,RC)阶段,自Beta2以来就一直在研究他,发现这个版本比旧版本确实实用得多,有大量的新功能加入到了VisualStudio2010中,应用程序开发生产力将会进一步得到提高。开发人员可以使用它进行更快的编码,整个团队的协作效率会更好。1、多目标应用程序开发使用VisualStudio2010不仅可以开发.Net4.0程序,还可以开发旧版本.Net程序,在IDE中创建一个新项目时,会看到一个选项可以选择不同版本的.NetFramework(如2.0,3.0,3.5和4.0),根据你的选择,它将会在“新建项目”对话框中过滤项目模板,如果选择.“NetFramework4.0”,它会显示所有项目类型,如果你选择“.NetFramework2.0”,它只会显示.NetFramework2.0支持的项目。不仅如此,由于VisualStudio2010是建立在Window显示基础(WindowsPresentationFoundation,WPF)之上的,当你检索一个具体的项目类型时,你会发现更多有用的东西。假设你想使用WPF开发一个客户端应用程序,你会发现在一个庞大的项目类型集中找到它是多么的困难。不要担心,现在在对话框右上角有一个搜索框,只需要输入关键字(如WPF),快速过滤的结果一定会让你满意。2、更快的智能感应(Intellisense)支持VisualStudio现在带来了更快速的智能感应支持,与旧版本相比速度大约提升了2-5倍。假设你想创建一个“WeakReference”实例,由于VisualStudio2010改进了搜索算法,你不用再输入完整的类名,你只需要输入“WR”,它将会自动过滤,显示你想要的“WeakReference”。3、编辑器缩放功能当你在做演示或做直播时,你会发现这个功能非常有用,VisualStudio2010之前的版本不得不打开“选项”面板,通过修改编辑器的字体大小来实现,显得非常繁琐,现在这个问题已经不复存在了,只需要在编辑器窗口内,按住CTRL键,然后滚动鼠标滚轮即可放大/缩小编辑器中的字体大小。4、在“添加引用”中程序集载入速度更快了在VisualStudio2010“添加引用”对话框中程序集的载入速度更快了,在旧版本中,在载入程序集时持续会被冻结住一段时间。在VisualStudio2010中,焦点默认落在“项目”标签上,但后台在默默地载入其它标签,如果焦点落在打开的“.Net”标签上,你会发现不是一次载入所有的程序集,而是以后台线程进行载入的,因此载入时间更快一点了。5、将窗口分离到IDE外你工作时是使用的双显示器吗?如果是,你会发现这个功能超级有用,VisualStudio2010现在支持将窗口分离到编辑器外,假设你想将“错误”,“输出”,“解决方案资源管理器”或“属性”窗口分离到第二个显示器,你可以将它们直接拖动到第二个显示第10页
第一章语言概述器即可,这样在第一个显示器中留给编辑器的空间就很大了。6、突出显示引用内容VisualStudio2010IDE的另一大特色是突出显示引用内容,通过此功能,你可以很容易地找出所有引用的位置。7、更快的代码生成速度在讨论这个功能之前,请允许我问你一个问题“你在使用TDD,即测试驱动开发吗?”,如果在使用,你会发现这个功能不仅很有用,而且很具吸引力,你可能会觉得很奇怪,为什么会这样呢?请允许我再问你一个问题“在执行测试驱动开发时如何编写代码的呢?”,是的,你必须先实现类和方法的骨架,然后编写单元测试用例实现真实的逻辑,VisualStudio2010带来了出色的代码生成功能,来看一组截图吧。正如你所看到的,在我的项目中不存在一个叫做“Person”的类,因此编辑器使用红色突出显示,表示它是未知的类。如果你仔细观察左边的截图,你就会发现即使在我的命名空间或项目中不存在Person类,但在智能感应列表中已经创建了一个引用,如果你将鼠标移到Person上,按下F10键,同时按下ALT+Shift,你会看到弹出一个菜单,一个是询问你是否为Person生成一个类,另一个是询问你是否创建一个新类型。如果你选择第一个选项,将在你的项目中生成一个名叫“Person”的类文件,这没什么好说的。我们还是来看看第二个选项,如果你选择了第二个选项,将会打开一个新对话框“生成新类型”,有更多的参数需要设置,在这里你可以选择访问方式(包括private/public/protected/internal),你可以选择生成不同类型的代码(包括enum/class/struct/interface),当然也可以修改类文件的位置,你可以选择放在相同的项目中,也可以选择一个不同的项目,不仅如此,你还可以为类创建一个新文件,或者将类追加到另一个文件中。总之,此功能为你自定义提供了各种选项。这个功能同样适用于产生方法。8、超酷的框选VisualStudio2010中还有另一个超酷的功能,我直接以一个例子进行介绍吧,假设你声明了一些公共属性,但后来你又想将它们标记为内部属性,你要怎么做呢?你是不是准备一个个地去替换呢?在VisualStudio2010中,要完成这项工作简直太容易了,按下ALT+Shift,然后使用鼠标画一个框选中要选择的内容,,然后输入要替换的文本即可。9、用户体验更好的导航现在要导航到你指定的代码变得非常容易了,由于VisualStudio2010是构建在WPF之上的,因此它现在具有边输入边过滤的功能,按下CTRL+,打开“定位到”对话框,当你在“搜索词”字段输入任意字符,它将显示一个匹配清单。10、更好的工具箱支持VisualStudio现在带来了更好的工具箱支持,现在你可以更容易地搜索工具箱项目,只需输入工具箱项目的名字,IDE将会把焦点跳转到匹配的元素,按下TAB键焦点将会转移到下一个匹配的元素。11、断点书签也玩协作现在在书签上有更好的功能,一个团队现在可以通过书签导入导出功能进行协作,你现在可以固定调式值,因此你可以在以后访问它,并且可以给书签添加一个标签。简单介绍一下这个功能的用法。假设你正在调试你的模块,在调试时你发现其他人负责模块中的问第11页
第一章语言概述题,你想告诉对方他的代码存在bug,并导致你的模块也产生了问题。在VisualStudio2010中,你可以固定调式值,然后将书签加上适当的注释导出为一个XML文件,将其发送给另一个团队成员,当它将这个XML文件导入到他的IDE中后,他将会看到书签和最后会话的调试值,因此他可以接着往下找,找出问题的根源,而不是要从头开始找问题的根源,这个功能在团队开发协作调试过程中非常有用。12、智能跟踪(IntelliTrace)VisualStudio现在有一个功能叫做智能跟踪(IntelliTrace),通过它你可以跟踪每一个调试步骤,你可以在智能跟踪(IntelliTrace)窗口中找到调用线程信息。1.3.3VisualStudio集成开发环境VisualStudio是一个自动化的集成开发环境,如图1-9所示。在使用VisualStudio2010开发程序之前,先通过一个窗体应用程序框架认识—VisualStudio2010集成开发环境的各个组成部分。图1-9VisualStudio窗体应用程序主窗口1、菜单栏在VisualStudio2010集成开发环境中,菜单栏位于主窗口标题栏下方,提供了13个菜单项。这些菜单项可以完成用于创建、保存、生成、调试以及测试应用程序的所有功能,如图1-10所示。图1-10菜单栏(1)“文件”菜单包含新建、打开、关闭、保存等各种与文件操作相关的命令。选择“文件一新建一项目”选项可以创建VisualBasic、VisualC++、VisualC#、VisualF#等项目,通过选择“网站”选项可以创建网站。第12页
第一章语言概述(2)“编辑”菜单包含编辑程序源代码的各种命令,主要包括撤销、重复、剪切、复制、粘贴、删除、查找和替换等命令。(3)“视图”菜单包含多个子菜单,用于显示或隐藏集成开发环境中的各种窗口和工具栏,如“代码”窗口、“设计”窗口、“解决方案资源管理器”窗口、“工具箱”窗口、“属性”窗口、“错误列表”窗口等。(4)“项目”菜单包含在当前项目中添加控件、模块和窗体等对象的命令,如添加Windows窗体、添加用户控件、添加组件添加服务引用、设为启动项目等。(5)“生成”菜单包含生成解决方案、生成和发布项目的命令,在输出窗口中显示警告和错误信息。(6)“调试”菜单包含调试应用程序的各种命令、如启动调试、逐语句、逐过程、新建断点、删除所有断点等。(7)“团队”菜单用于项目之间协作开发。(8)“数据”菜单包含与数据源操作相关的命令,如显示数据源、预览数据、添加数据源等。(9)“格式”菜单包含用于设置窗体上添加的控件的命令,如对齐方式、使大小相同、水平间距、垂直间距、在窗体中居中等。(10)“工具”菜单包含各种扩展工具、建立各种连接、选择自定义工具箱子菜单等选项。(11)“测试”菜单仪含建立和管理测试的相关选项,如新建测试、加载元数据文件、创建新测试列表等。(12)“窗口”菜单包含用于控制窗口布局的各种选项,以及当前打开的窗口列表等。(13)“帮助”菜单包含用于获取帮助信息的各种选项。2.工具栏工具栏位于菜单栏下方,提供菜单项中各种功能的快捷方式,根据程序的不同类型,工具栏会动态改变。工具拦包括“标准”工具栏、“生成”工具栏、“调试”工具栏、“文本编辑”工具栏等。默认会显示“标准”工具栏,根据当前处理的项目和文件类型还会显示其他工具栏,如图1-11所示。图1-11标准工具栏3.解决方案资源管理器解决方案像一个容器,包含构成应用程序所需要的引用、数据连接、文件等。一个解决方案可以包含多个项目,而一个项目通常包含多个文件。“解决方案资源管理器”窗口用于显示解决方案、解决方案的项目及其中的文件。图1-12为在Visualstudio2010中使用VisualC#创建窗体应用程序时所显示的“解决方案资源管理器”窗口,在窗口上方包括以下几个按钮。(1)属性,单击此按钮,显示解决方案中所选文件的相应属性。(2)显示所有文件,单击此按钮,显示包括已经被排除的文件和正常情况下隐藏的文件。第13页
第一章语言概述(3)刷新,单右此按钮,刷新所选文件或解决方案中文件的状态。(4)查看代码,单击此按钮,打开选定文件的“代码”窗口。(5)设计视图,单击此按钮,在设计器模式下打开选定的文件进行编辑。(6)查看类图,单市此按钮,启动类设计器,显示当前项目中类的关系。图1-12“解决方案资源管理器”窗口4.工具箱和属性选择“视图一工具箱”选项可以打开“工具箱”窗口,选择“视图一属性窗口”选项,可以打开“属性”窗口。这两个窗口是开发Windows应用程序常用的窗口。“工具箱”窗口以选项卡的形式分组显示常用控件,这些控件可以通过鼠标拖动的方式添加到窗体中。“属性”窗口显示设计界面中所选控件的各种属性信息。“工具箱”窗口包含了可以加入窗体的组件以及控什的动态更新集合,包括所有Windows窗体、公共控件、容器、菜单和工具栏、数据、组件、打印、对话框、WPF通用控件、报表、VisualBasicPowerPacks控件、常规等选项卡。Windows窗体的工具箱如图1-13所示。“属性”窗口可以编辑和查看控件、文件或类的属性,并且可以在设计时查看修改窗体设计器中所边对象的属性和事件。属性列表会根据当前窗体中的页面元素自动进行更新,如图1-14所示。第14页
第一章语言概述图1-13工具箱窗口图1-14属性窗口在“属性”窗口顶部的下拉列表中包含了当前工作区中可以获得和更改的所有条目,并按照名称的字母顺序进行排列,左边会显不其对应的.NET项目类型。下拉列表下面有五个按钮,从左到右分别为按分类排序、字母排序、属性、事件、属性页。5.设计器在VisualStudio2010中创建不同类型的应用程序都需要使用相应的设计器来完成。在使用C#创建Windows窗体应用程序时,可以使用Windows窗体设计器来完成,如图1-15所示。在Windows窗体设计器中可以添加控件,设置控件和窗体的属性,也可以设置布局,并可以为事件编写代码。图1-15窗体设计器第15页
第一章语言概述6.代码编辑器选择“视图一代码”选项,或者按F7键,或者通过解决方案资源管理器选择要查看代码的文件,然后单击工具栏户的“查看代码”按钮,就可以切换到代码编辑器。在代码编辑器中可以编写源程序,可以在集成开发环境产生的代码中添加手写代码,如图1-16所示。图1-16代码编辑器7.错误列表选择“视图一错误列表”选项可以打开“错误列表”窗口。用户在输入代码时,系统会自动进行语法检查,如果发现不合法的语句出现,就会在“错误列表”窗口中显示错误信息,提示用户。除此以外,“错误列表”窗口还会显示各种应用程序的警告信息,帮助用户完善应用程序。1.4简单的C#程序1.4.1创建简单的控制台应用程序下面开始使用Visualstudio2010创建一个控制台应用程序,然后通过这个简单的程序介绍控制台应用程序的基本结构和关键特性。(1)启动Visualstudio2010后,选择“文件一新建一项目”选项,然后会弹出“新建项目”对话框,如图1-17所示。第16页
第一章语言概述图1-17新建控制台应用程序项目对话框(2)在“新建项目”对话框的模板中选择“控制台应用程序”;在“名称”框中输入项目名称(本例为Hello);在“位置”框中输入路径名,或通过“浏览”按钮选择项目存放的位置(本例为D:C#);在“解决方案名称”框中输入解决方案名称(通常与项目名称相同)。单击“确定”按钮,进入C#控制台应用程序编辑界面,如图1-18所示。图1-18C#控制台应用程序编辑界面第17页
第一章语言概述(3)这时,系统自动创建了一个名为的文件,里面已经包含了VS2010自动创建的一些代码。在程序代码编辑窗口中输入以下程序代码(其中的粗体部分为开发者输入的):usingSystem;c;;;namespaceHello{classProgram{staticvoidMain(string[]args){("请输入您的姓名:");stringname=ne();//输入姓名字符串赋值给name变量ine("欢迎"+name+"进入C#程序设计的广阔天地!");ne();}}}(4)在集成开发环境中按F5键或选择“调试”菜单组中的“启动调试”命令,执行(调试)控制台应用程序。如果程序代码没有错误,运行结果如图1-19所示。/*使得程序执行不会自动退出调试环境*/图1-19Hello程序的运行结果1.4.2C#程序的基本结构在C#程序中,一个应用程序可以由一个或者多个类组成,所有程序代码必须封装在类中。一个C#程序可以存放在一个源程序文件中,也可以存放在多个源程序文件中。一个源程序文件中可以有一个或者多个类,但不允许将一个类拆散存放在不同的源程序文件中。在为源程序文件命名时,可以与类的名字相同,也可以不同,即源程序文件的命名不受类名限制。C#语言是一种块结构的语言,所有的语句都包含在一个语句块中,语句块通过花括号{}来界定。在一个程序块中可以包含多条语句,也可以不包含语句。第18页
第一章语言概述下面以“HelloWorld”程序为例,介绍C#程序的基本结构。1.命名空间C#程序可以内一个或多个类组成,程序都是封装在某个类中。在程序中需要声明类型,类型包括成员,并能够被组织到命名字间中。System是NETFrameworks提供的命名空间,System是C#的关键字,表示要引用这个命名空间。关键字namespace声明了与类相关的命名空间它后面的括号中的所有代码都认为在这个命名空间中。例如:usingSystem;c;;;namespaceHelloWorld{}在Visualstudio2010中默认使用项目名称作为顶级命名空间。运行程序时,编译器会在using指定的命名空间中查找在代码中引用的类。命名空间的作用会在大规模的程序代码中显现出来。当在一个庞大复杂的程序中有多个方法多个类时,一定全有很多的名称,极有可能出现名称冲突的情况,利用命名字间可以很好地解决这个问题。它相当于为标识符创建一个有标签的容器,如果同名的两个类处于不同的命名空间中,那么它们就不会出现混淆。2.声明类在声明了命名空间后,需要声明一个类。在“HelloWorld”程序中,Program类位于HelloWorld命名空间中。C#与Java一样,所有的代码都要包含在一个类中,并使用class关键字进行声明,后而需要有一对花括号,与类相关的代码都放在这个花招号中。类的描述可以由多条语句组成,在C#语言中每个程序描述语句都必须以分号“;”作为结束的标志。classProgram{}3.Main方法每个应用程序都有一个执行的入口,指明程序执行的开始点。C#应用程序中的入口点用主方法标识,主方法的名字为Main(),后面的括号中即使没有参数也不能省略。C#应用程序必须有、而且只能有一个Main()方法,如果一个应用程序仅由一个方法构成,这个方法的名字就只能为Main()。主方法用一对花括号限定自己的区域,如下所示:staticvoidMain(string[]args){}4.I/O(输入/输出)C#程序的输入和输出通常使用.NETFramework运行库提供的Console类来完成。其中WriteLine()利ReadLine()是这个类中最基本的两个方法。WriteLine()方法将带有行结束符的字符写入标准的输出设备中;ReadLine()方法读取标准输入设备中的字符串,第19页
第一章语言概述并通过Enter键结束输入。其他console方法用于不同的输入和输出操作。如果程序开始出包含“usingSyestem”指令,则不需要完全限定System类和方法就可直接使用它们。例如:staticvoidMain(string[]args){("请输入您的姓名:");stringname=ne();ne();}5.注释注释信息是程序中不可执行的部分,仅用于对程序代码加以说明,编译时会将其完全忽略。恰当地使用注释有助于提高程序的可读性,便于软件维护和协作开发。作为一个负责任的优秀程序员,必须养成为程序添加注释的良好习惯。C#中的注释方法有三种:(1)单行注释在一个语句行上,用双斜杠“//”作为引导符,其后的任何内容均为注释信息,编译时被忽略,通常用于注释字符串较短的场合。单行注释可以书写在可执行代码语句的后面,也可以书写成单独的一行。下面两种方式起到同样的作用:方式1:stringname=ne();//输入姓名字符串赋值给name变量方式2://输入姓名字符串赋值给name变量stringname=ne();(2)多行注释从“/*”开始,到“*/”结束,其中的所有内容(可以是一行,或多行)均为注释信息,但注释文字中必须不包含“*/”。多行注释通常用于需要书写较大量注释的情况。本章小结:本章介绍了C#的主要特点,并对C#语言与其他编程语言进行比较。简单介绍了.NETFrameworks的概况、VisualStudio2010的新特性及C#程序的基本结构。习题一一、单项选择题1.C#语言是微软.NET公共语言运行环境中内置的核心程序设计语言,是一种((A)面向过程程序设计语言(C)跨平台程序设计语言(A)但不支持继承(C)但仅支持单继承第20页//输入姓名字符串赋值给name变量ine("欢迎"+name+"进入C#程序设计的广阔天地!");/*使得程序执行不会自动退出调试环境*/)。(B)面向对象程序设计语言(D)机器语言)。2.C#语言支持面向对象程序设计概念,((B)而且支持多继承(D)支持单继承和多继承
第一章语言概述3.C#应用程序由一个或者多个类组成,一个应用程序的所有程序代码((A)必须封装在类中(C)必须封装在一个类中(A)use关键第一章字((B)namespace(B)不能封装在类中(D)必须封装在多个个类中)。(C)import(D)using-15(C)class-)。4.C#应用程序中,导入其他系统预定义元素部分可以使用关键字(5.命名空间是一种在程序中防止标识符命名冲突而引入的逻辑隔离机制,C#中使用C#程序设计概述)表示。(B)spacename(B)main(D)namespace)。(A)using(A)class6.C#应用程序中,用主方法指明程序执行的开始点,主方法的名字规定为((C)Main(D)MainWay)。7.C#中的注释方法有三种,下列注释方法中错误的是((A)单行注释“//”(C)XML注释“///”8.(B)多行注释“/*和*/”(D)HTML注释“”)。下列对控制台应用程序描述正确的是((A)控制台(Console)应用程序就是对设备进行控制的应用程序(B)控制台(Console)应用程序包含了大量Windows系统的组成元素(C)控制台(Console)应用程序是C#语言能够开发的应用程序类型之一(D)控制台(Console)应用程序是基于标准C语言的单片机技术9.在控制台应用程序中,如果在程序开头使用)。(B)();)属性。(D)CaptionusingSystem;语句引入了System命名空间,则下列方法调用错误的是((A)();(C)();(A)Text(B)Name①(D)Read();(C)ForeColor10.不论任何控件,共同具有的是(二、选择填空题1.C#语言是一种境中内置的核心程序设计语言。、全新的程序设计语言,是微软.NET公共语言运行环2.C#程序设计语言的主要特点有:语法简洁、满足通用语言规范、面向对象、兼容性和灵活性、以及一个源程序文件中可以有一个或者多个类,中。4.为源程序文件命名第21页②等。3.一个C#程序可以存放在一个源程序文件中,也可以存放在多个源程序文件中。③将一个类拆散存放在不同的源程序文件④,既可以与类的名字相同,也可以不同。⑤字母符的大小写形式。5.在定义C#语言的标识符构成时,
第一章语言概述备选项:(A)面向过程的(E)但不允许(I)而且允许三、思考题1.简述C#语言的语句书写规则。2.简述在VisualStudio2010集成环境中创建C#控制台应用程序的主要步骤。3.简述在VisualStudio2010集成环境中创建C#Windows窗体应用程序的主要步骤。4.一个C#控制台应用程序主要由哪几个部分构成?5.C#程序中可以使用哪些书写注释的方法?它们分别适合用于什么场合?(B)面向对象的(F)而且允许(J)不受类名限制(C)完整的安全性(D)不需要区分(G)需要区分(H)有限的安全性第22页
第一章语言概述第23页
第一章语言概述第24页
第一章语言概述第25页
第一章语言概述第26页
第一章语言概述第27页


发布评论