第1 章 .NET 框架与C# 概述 项目背景 在学习C#语言前,必须先对其有一个初步认识。为帮助读者了解C#的开发环境、 C#的基本程序结构,我们在项目实施中,通过一个简单程序的设计,介绍.NET的编程界 面,C#的编程环境以及程序调试的基本方法。在学习中要注意C#语言与C 语言和 Java语言的区别,在比较中学习。 项目任务 (1)任务1-1 第一个C#程序 (2)任务1-2 注册用户信息 知识目标 (1)了解.NET框架的基本概念、C#的基本概念。 (2)理解C#的程序结构。 (3)理解命名空间的概念。 (4)熟悉控制台程序数据输入/输出的方法。 技能目标 掌握C#语言编程环境与程序调试的基本方法。 关键词 .NET框架(.NETframework),应用(application),开发(developer),构建(builder),调试 (debug),控制台(console),项目(project),命名空间(namespace),解决方案(solution),运行时 (runtime),.NET类库(.NETlibrary),编译器(compiler) 1.1 Visual Studio .NET 简介 Microsoft.NET(以下简称.NET)框架是微软提出的新一代软件开发模型,C#语言 是.NET框架中新一代的开发工具。C#语言是一种面向对象的语言,它简化了C++ 语 言在类、命名空间、方法重载和异常处理等方面的操作,摒弃了C++的复杂性,更易使用, C#面向对象程序设计与项目实践 更少出错。它使用组件编程,和VB一样容易使用。 1.1 NET概述 1.. 1.什么是. NET 2000年6月22日,微软正式对外宣布.NET战略。.NET是微软推出的一个全新的 概念,微软公司总裁兼首席执行官史蒂夫·鲍尔默说:“NET代表了一个集合、一个环 境、一个编程的基础结构,可以作为一个平台来支持下一代的(.) 互联网。.NET也是一个用 户环境,是一组基本的用户服务,可以作用于客户端、服务器端和任何地方,具有很好的一 致性,并有新的创意。因(”) 此,它不仅是一个用户的体验,而且是开发人员体验的集合。 NET 的组成 2.. NET以公共语言运行库(commonlanguageruntime,CLR)为基础,实现跨平台和跨语言(.) NET由5个主要部分组成。 开发。. (1)Windows.NET操作系统:它是可以运行.NET程序的操作系统的总称,如 Windows7/8/10等,还提供各种应用软件服务(如 IS 、ActiveDirectory等)。 (2).evr等。 NET企业级服务器:它主要包括SQLSre (3).NET提供一系列高度分布 、 NETWeb服务组件:.可编程的公共性网络服务, 可以从任何支持SOAP的平台上访问. NET服务组件。 (4).NET的核心部分, NET应用程序所需的编 NET框架:它是.提供建立和运行. 辑、编译等核心服务。 (NET:它是为建立基于.NET框架应用程序而设的一 5)MicrosoftVisualStudio. 个可视化的集成的开发环境(inertddvlpmetevrnmet, tgaeeeonnionIDE )。它为所有的编 程语言提供一个简单统一的代码编辑器,包括XML编辑器、SQLServer接口、以图形化 的方法设计服务器端构件的设计器、监控远程机器的ServerExplorer等。 1.2 NET框架简介 1.. NET框架是一个集成在Windows中的组件,是一套语言无关的应用程序开发框架,它的(.) 主要特色是:简化应用程序的开发复杂性、采用系统虚拟机运行的编程平台、以 公共语言运行库为基础,提供一个一致的开发模型,支持多种语言(如C# 、VB 、C++、 Python等)的开发,开发人员可以选择任何支持.NET的编程语言来进行多种类型的应 用程序开发。它支持生成和运行下一代应用程序与XMLWeb服务。 .并为所有的 NET框架提供了一个语言无关的CLR来管理各种代码的执行过程, NET语言开发各种应用和服务提供了框架类库(FCL )。FCL frameworkclaslibrary,包(.) 括基础类库(和用户接口库。.如图1-1所示。 BCL) NET框架包括以下组件, (1)公共语言运行库(CLR )。 第 1 章 .NET 框架与C#概述 (2)基础类库(BCL )。 (3)数据库访问组件 NET 编程框架的 (NET We 和 bXML 服务 )。 (Webserveice) orm )。 (4)基于ASP. ADO. 和Web表单(Webf(5)Windows桌面应用界面编程组件(WinForm )。 图1-. 1 NET 框架的组成 CLR 和BCL 是. NET 框架的两个主要组成部分。 1. 公共语言运行库 公共语言运行库是. NET 框架的基础。CLR 是应用程序的执行引擎和功能齐全的类 库,该类库严格按照CTS 规范实现。作为程序执行引擎,CLR 负责安全地载入和运行用 户程序代码。CLR 提供一个执行时的管理环境,提供内存管理、线程管理和远程处理以 及类型安全检查等核心服务。通常在CLR 监控之下运行的代码,称为托管代码 (managedcode)。 CLR 的两个组成部分如下。 (1)CTS(commontypesystem,通用类型系统), 定义了在微软中间语言IL 中的数 据类型。 CTS 不但实现了COM 的变量兼容类型,而且定义了通过用户自定义类型的方式来 进行类型扩展。任何以. NET 平台作为目标的语言必须建立数据类型与CTS 类型之间 的映射。所有.实现它们之间无缝的互操作。 NET 语言共享这一类型系统, (2)CLS(commonlanguagespecification,公共语言规范), 包括几种面向对象的编程 语言的通用功能。 . NET 通过定义CLS 解决各种不同语言引发的互操作性问题。CLS 制定了一种以 .NET 语言之间实现 NET 平台为目标的语言所必须支持的最小特征以及该语言与其他. 互操作性所需要的特征,以实现各种语言在同一平台下组件的相互操作。例如,CLS 并 不去关心一种语言用什么关键字实现继承,只关心该语言如何支持继承。 如果想要不同的语言在.就必须提供一个编译器将各种语言的程 NETCLR 上执行, 序编译成.metadata) 以符合通用类型系统 NETCLR 所认识的元数据(以及中间语言, C#面向对象程序设计与项目实践 (CTS)的规定。然后通过即时编译器“翻译”平台专用语言,这样就使得各种不同的语言 可以在同一平台上运行,如图1-2所示。 图1- 2 不同的语言在. NETCLR 上的执行过程 NET 类库 2.. .它是一个综合性的面向 NET 框架也具有一套与公共语言运行库紧密集成的类库, 对象的可重用类型集合,使用该类库可以创建多种类型的应用程序,这些应用程序包括传 统的命令行或图形用户界面(GUI)应用程序, NET 所提供的Web表 也包括基于ASP. 单和XMLWeb服务应用程序 。 1.3 C# 编程语言简介 1. NET 编程语言介绍 1.. 在公共语言运行库(CLR) 开发人员可以选择任何支持. 环境下, NET 框架的语言来进行 应用程序的开发,如VB.C# 、 NET 、J# 以及一些第三方公司推出的语言。由于这些语言运 行在相同的公共语言运行库(CLR)执行环境下,可以有效地解决多语言之间的代码整合的 问题。 2.C# 程序设计语言 C#(读作CSharp)是一种简单易用的新式编程语言,不仅面向对象,还具有类型安全 性。C# 源于C语言系列,是一种面向对象的语言,还支持面向组件的编程。当代软件设计 越来越依赖采用自描述的独立功能包形式的软件组件,此类组件的关键特征包括为编程模 型提供属性、方法和事件;包含提供组件声明性信息的特性;包含自己的文档。C# 能直接支 持这些概念,这使它成为一种非常自然的语言,可用于创建和使用软件组件。 除此之外,C# 还具有以下功能。 (1)垃圾回收机制可自动回收无法访问的未使用对象占用的内存。 (2)异常处理。提供了一种结构化的可扩展方法来执行错误检测和恢复。 (3)类型安全设计禁止读取未初始化的变量、为范围之外的数组编制索引或执行未 检查的类型转换。 第 1 章 .NET 框架与C#概述 (4)C# 采用统一的类型系统,所有C# 类型(包括int和double等基础类型)均继承 自一个根———object类型。因此,所有类型共用一组通用运算,任何类型的值都可以一致 地进行存储、传输和处理。此外,C# 还支持用户定义的引用类型和值类型,从而支持对 象动态分配以及轻量级结构的内嵌式存储。 1.4 ViulSuiNET 集成环境 1.satdo. MicrosoftVisualStudio(以下简称VS)是微软公司的开发工具包系列产品。VS 是 一个基本完整的开发工具集,它包括了整个软件生命周期中所需要的大部分工具,如 UML 工具、代码管控工具、集成开发环境等,是目前流行的Windows平台应用程序的集 成开发环境。用户所写的目标代码适用于微软支持的所有平台,包括Microsoft Winownowie、WidsCE 、NET 框架、NETCat框架和Mirsf ds、WidsMoble。 now..ompccoot Silverlight及WindowsPhon VisualStudio系列产品共用一个集成开发环境,它由若干元素组成:菜单栏、标准工 具栏以及停靠或自动隐藏在左侧、右侧、底部和编辑器空间中的各种工具箱。可用的工具 箱、菜单和工具栏取决于所处理的项目或文件类型。 根据所应用的设置以及随后执行的任何自定义动作, IDE 中的工具箱及其他元素的 布置会有所不同。可以使用可视的菱形引导标记轻松移动和停靠窗口,或使用自动隐藏 功能临时隐藏窗口。 1. 起始页 VisualStudio2010 起始页分为三个主要部分:显示“新建项目”和“打开项目”命令 的命令部分;“最近的项目”列表;包含“入门”选项卡和“RSS 源”选项卡的选项卡式内容 区域。页面底部是设置起始页显示时间的选项,如图1-3所示。 图1- 3 VisualStudio2010 的起始页 C#面向对象程序设计与项目实践 2. 项目 可以通过选择“文件”→“项目”命令或单击起始页的“新建项目”链接,创建一个项目, 如图1-4所示。 图1- 4 新建一个项目 系统提供了已经安装的各类模板,用户根据不同的需求选择相应的项目模板即可,如 图1-5所示。 6 图1- 5 选择项目模板 第1章 .NET框架与C#概述 这里选择控制台应用程序。 3. 解决方案资源管理器 解决方案和项目包含一些项,这些项表示创建应用程序所需的引用、数据连接、文件 夹和文件。解决方案容器可包含多个项目,而项目容器通常包含多个项。 通过解决方案资源管理器,可以打开文件进行编辑,向项目中添加新文件以及查看解 决方案、项目和项目属性,如图1-6所示。 图1- 6 解决方案资源管理器 4. 代码编辑器和设计器 使用哪种编辑器和设计器取决于所创作的文件或文档的类型。文本编辑器是IDE 中的基本字处理器,而代码编辑器是基本源代码编辑器。 代码编辑器和设计器通常有两个视图:图形设计视图和代码隐藏视图或源视图。设 计视图允许在用户界面或网页上指定控件和其他项的位置。可以从工具箱中拖动控件, 并将其置于设计视图上。 5. 生成和调试工具 VisualStudio提供了一套可靠的生成和调试工具。使用生成工具,可选择需要生成 的组件、排除不想生成的组件,并确定如何生成选定的项目以及在什么平台上生成这些 项目。生 成过程即是调试过程的开始。生成应用程序的过程可帮助用户检测编译时的错 误。这些错误可能包含不正确的语法、拼错的关键字和输入不匹配。“输出”窗口将显示 这些错误类型。 在应用程序生成后,可以使用调试器检测和更正在运行时检测到的问题,如逻辑错误 和语法错误。处于中断模式时,可以使用“变量”窗口和“内存”窗口等工具来检查局部变 量和其他相关数据。 【例1-1】 编写第一个Hello程序。 namespace prj { class Program { static void Main(string[] args) { Console.Write("hello,word!"); } } } 1.1.5 编写代码环境 IDE为编写各种程序代码提供了一个很方便的环境。 1.代码编辑窗口 在IDE中,一个项目的代码可以通过以下两种方式体现。 1)设计器窗口 对于设计像WinForm 这样的用户界面项目,IDE提供了一个图形化用户界面的设 计环境,大大提高了开发速度。利用此环境设计一个窗体或一个服务器端对象,设计器会 自动修改代码来反映所做的界面修改。 激活设计器窗口的方法:选择“项目”→“添加Windows窗体”命令,或选择对应的窗 体对象,系统会自动打开各种窗体、控件或组件的设计器窗口,如图1-7所示。 2)代码编辑窗口 激活代码编辑窗口有以下几种方法。 (1)选择“视图”→“代码”命令(或按F7键)。 (2)在设计器中,选中窗体或控件,右击,在弹出的快捷菜单中选择“查看代码”命令。 (3)在解决方案资源管理器中,选中窗体文件Form.cs,单击此小窗口上方的“查看代 码”按钮。 (4)双击某窗体或控件。 8 C#面向对象程序设计与项目实践 第 1章 .NET框架与C#概述 图1- 7 设计器窗口 代码编辑窗口(见图1-6)顶部的两个下拉列表框可用于选择和浏览相应的代码。左 边的列表框包括了代码中的所有类;右边的列表框包括了左边列表中当前类的方法、数据 成员、所使用的控件以及相应的事件处理方法。选中一项后,光标会定位于对应方法的代 码的第一行。 每打开一个新文件编辑,可以通过各标 IDE 就会在代码编辑窗口上添加一个新标签, 签来切换文件。 2. 代码折叠 在代码编辑窗口中,IDE 的另一个有用的功能就是“代码折叠”。此项功能通过树上 的“+”和“-”图标实现对代码的展开和折叠,便于查看代码的层次结构。代码编辑窗口 的左边有一条灰色细线,还有+和-的节点展开和折叠状态,如图1-8所示。 关闭代码折叠功能:选择“编辑”→“大纲显示”→“停止大纲显示”命令。 激活代码折叠功能:选择“编辑”→“大纲显示”→“启动自动大纲显示”命令。 自定义代码编辑器状态:选择“工具”→“选项”命令,在选项卡的左侧窗口中选择“文 本编辑器”选项,然后自定义设置代码编辑器的各种状态。 3. 语法导航 代码编辑器环境中,有以下语法导航功能。 (1)当输入“ 只须选时,(”) . IDE 提供的语法导航会弹出被调用对象的所有方法列表, 择其中所需的方法,按Enter键便可在代码中显示该方法的名称,而不需要手工输入。 (2)当输入“它包含了该方法的输入参数类型和个时,(”) (IDE 会显示一个浮动窗口, C#面向对象程序设计与项目实践 图1- 8 代码编辑窗口 数,以确保方法调用不会出错。 IDE 会以不同的颜色显示归类到相应的类别, (3)当在代码窗口中输入一个单词时, 包括关键字、标识符和操作符等(可以选择“工具”→“选项”命令,在弹出的对话框中设置 各类别的颜色)。 (4)IDE 会在编译前检查代码。如输入了一行不完整的代码,IDE 会在该代码行下 画红色波浪线表示有错。 (5)IDE 环境中有上下文智能帮助功能。如不能确定某关键词的用法,可选中该单 词然后按F1 键,则IDE 会打开相应的帮助窗口。 4. 对象浏览器 对象浏览器是IDE 中最重要的工具之一,它显示了方案中所有定义的和引用的对象 或构件信息。 激活对象浏览器的方法:选择“视图”→“其他窗口”→“对象浏览器”命令,“对象浏览 器”窗口如图1-9所示。 “对象浏览器” NET 类库和命名空间, +”图 窗口的左边显示了项目中的所有.单击“ 10