C#程序设计课件 第1章_visual_Studio[1].net和c__第1页
C#程序设计课件 第1章_visual_Studio[1].net和c__第2页
C#程序设计课件 第1章_visual_Studio[1].net和c__第3页
C#程序设计课件 第1章_visual_Studio[1].net和c__第4页
C#程序设计课件 第1章_visual_Studio[1].net和c__第5页
已阅读5页,还剩49页未读 继续免费阅读

下载本文档

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

文档简介

第1章 Visual Studio.NET和C#,2,本章将为大家介绍.NET的设计原理以及Visual Studio .NET各元素之间的相互关系,介绍Visual Studio.NET编译器内部原理,以及Visual Studio.NET应用程序的内在元素。,3,本章学习要点:,了解C#.NET和Visual Studio.NET 了解Visual Studio.NET的新功能 了解.NET Framework与Visual Studio.NET之间的关系 学习实现.NET Framework 了解公共语言运行时的作用 了解程序集的基础知识 了解名称空间的组成 了解.NET Framework类库 学会创建C#.NET应用程序 了解中间语言,4,1.1 Visual Studio.NET与C#.NET,Visual Studio.NET为我们提供了一种编写Windows应用程序的良好环境。很早之前要编写Windows应用程序时需要用到C+,对于初学者来说不但难学,而且在创建应用Windows应用程序时既复杂又费时。 随着Visual Studio.NET和C#的推出变革了Windows的软件开发,不仅如此对其他类型程序的开发也有独到之处。,5,1.1.1 Visual Studio.NET简介,Visual Studio.NET是.NET平台下最为强大的开发工具,无论是软件服务商,还是企业应用程序的部署与发布,都可以提供近乎完美的解决方案。.NET开发平台是为简化在第三代Internet分布式环境下的应用程序开发,基于开发互联网标准和协议之上,实现异构语言和平台高度交互性,而构建的新一代和通信平台。.NET开发平台如下图所示:,6,Visual Studio.NET提供了包括设计编码、编译调试、数据库联接操作等基本功能和基于开放架构的服务器组件开发平台、企业开发工具和应用程序重新发布工具以及性能评测报告等高级功能,下图为Visual Studio.NET 集成开发环境的操作界面。,7,8,1. Visual Studio.NET IDE改进,共享相同的开发环境 优秀的帮助系统 提供新控件 可创建不同类型的应用程序 依赖XML 提供安装程序的自定义方式,2. Visual Studio.NET语言新增功能,面向对象的编程语言 相同成员类型 引入了新的语言 相同的模块文件结构 编译为相同的格式: 中间语言,1.1.2 C#简介,C#是用于创建要运行在.NET上的应用程序的语言之一,它从C语言和C+语言演化而来,是Microsoft专门为使用.NET平台而创建的,并且吸收了以前许多教训,考虑了其他语言的许多优点。 由于语法简单,使用C#开发应用程序比C+程序相对简单。同时,C#也是一种强大的语言,在C+中能完成的任务在C#中同样也能完成。C#的代码要比C+略长一些,这是因为C#是一种类型安全的语言(与C+不同),虽然C#的代码略长但其代码更健壮,调试也比较简单。,11,C#是惟一为.NET Framework而设计的语言,是移植到其他操作系统上的.NET版本中使用的主要语言,能使用.NET Framework代码库提供的每种功能,如果要使用语言如VB.NET尽可能类似其以前的语言,且仍遵循CLR,就不能完全支持.NET代码库的某些功能。,使用C#可以创建下面列出几种常见的应用程序的类型,Windows应用程序:如office等 Web应用程序:网页等 Web服务:分布式应用等,13,1.2 .NET Framework与Visual Studio.NET的关系,Visual Studio.NET应用程序开发环境的核心就是.NET Framework的软件组件。.NET Framework定义了语言之间互相操作的规则,以及如何把应用程序编译为可执行代码;同时,.NET Framework还负责任何Visual Studio.NET语言创建的应用程序的执行,.NET Framework旨在实现下列目标:,14,提供一个一致的面向对象的编程环境,而无论对象代码在本地存储和执行,还是在Internet上发布,或者在远程执行。 提供一个可提高代码执行安全性的环境。 提供一个可消除脚本环境或解释环境性能问题的代码执行环境 使开发人员的经验在面对类型大不相同的应用程序(如基于Windows的应用程序和基于Web的应用程序)时保持一致。 按照工业标准生成所有通信,以确保基于.NET Framework的代码可与任何其他代码集成。,1.3 .NET Framework结构,不管在Visual Studio.NET IDE中或用记事本采用何种.NET开发语言,都必须安装.NET Framework。这是因为它们都依赖于.NET Framework来编译和执行应用程序。 .NET Framework主要由公共语言运行时和.NET Framework类库组成,它们分别定义了数据类型和.NET下语言的互操作性,构成了.NET Framework的基础。,16,. NET Framework 的体系结构,操作系统,公共语言运行时 (CLR),VC+.Net,C#,VB.Net,VJ#,.Net Framework 类库 (FCL),从开发语言的角度看.Net Framework,模拟CLR和MSIL,日语,汉语,翻译,英语(中间语言),CLR的一个作用就是把我们用不同语言写出来的源代码编译成中间语言,这里我们也可以称这时的代码为MSIL既微软中间语言,.NET Framework 的组件,基本框架类,WinForms,ADO.Net 和 XML 类,.Net Framework,.Net Framework 类库,ASP.NET,CLS,CLR,CTS,从模块组成的角度看.Net Framework,1.3.1 公共语言运行时CLR,.NET Framework核心组件就是公共语言运行时(Common Language Runtime),它管理内存、线程执行、代码执行、代码安全验证、编译和其他系统服务等。这些功能是公共语言运行时上运行的托管代码所固有的。下面是公共语言运行时提供的重要服务: 1公共类型系统CTS 2公共语言规范CLS 3中间语言MSIL和Just-In-Time编译器 4执行管理 5垃圾回收机制GC,20,1、CTS 公共类型系统,各种编程语言支持的数据类型都有相似:如整型、浮点型、字符型等。.NET抽象出公共类型系统(CTS),支持大多数编程语言的类型和操作。它定义了申明和使用类型的标准,在不同计算机间以标准化的格式进行数据通信。 例:如C#中的int类型和J#中的Int类型都是基础数据类型System.Int32的别名。,CTS基本结构,对象,引用类型,字符串类型,内置值类型,自定义类型,枚举,类类型,值类型,接口类型,委托类型,指针类型,2、CLS 公共语言规范,规定所有 .NET 语言都应遵循的规则。是一组结构和限制条件,使任何支持CLS的语言都完全使用库,并且使用这些语言相互集成。 CLS是所有针对 .NET的编译器都必须支持的一组最低标准,以确保语言的互操作性。,CLS定义的规则,定义了命名变量的标准规则; 定义了基本数据类型; 定义了对基于0的数组; 定义了函数的格式; 禁止内存指针和函数指针。,3、中间语言和JIT,即时编译器(Just-In-Time)将中间语言(MSIL)代码编译为特定于目标操作系统和计算机体系结构的本机代码。,4、执行管理,把代码编译为MSIL,再用JIT将其编译成本机代码后,CLS以托管的方式执行代码,包括管理内存、安全性、跨语言调试等。 托管代码:编写为支持CLR服务的代码。 优点:平台无关性、提高性能、语言的互操作性 未托管的代码:不依赖于CLR提供的服务。,创建托管代码的过程,IL文件,CLR,用户执行中间语言,JIT,5、垃圾回收机制,托管代码的一个功能是垃圾回收,可以确保当应用程序不再使用某些内存时,这些内存会被完全释放。CLR会定期使用称为垃圾回收器(Garbage Collector)的组件释放内存,定期扫描释放。,1.3.2 类库FCL,类库是一个与公共语言运行时紧密集成的可重用的类型集合,是类、接口和值类型组成的库。 类库是面向对象的。 FCL中的所有类型和用户自定义的类型都组织成层次结构,位于最顶端的是System.Object,称为超类。,1、主要数据类型,2、类型继承,System.Object(类),System.ValueType(类),System.Single(结构),System.Int16(结构),System.Int32(结构),System.Int64(结构),System.Double(结构),System.Array(类),3、类型转换,隐式转换 Single current=999165.165; Int32 current2; Short current3; current2=current;/四舍五入999165 current3=current2;/溢出错误 显式转换 ToBoolean方法、ToInt16、ToString等。,例,string currentstring; int currentnumber; currentnumber=System.Console.ReadLine(); currentstring=System.Convert.ToInt32(currentnumber);,1.4 程序集,Visual Studio.NET把应用程序编译为中间语言文件,该文件的内容通常称为程序集。程序集(assembly)是.NET应用程序的原始的物理构造块,我们创建的每一个应用程序便是一个程序集。它是部署.NET应用程序的主要单元,它可以是动态链接库(dll)或者可执行文件(exe)。,34,程序集具有以下特点,名称必须是全局唯一的 保存身份:程序集发布者的身份 程序集身份的信息,包括它文本命名和版本号。 程序清单描述了程序集的内容 一个程序集可能会依赖于其他一个或多个程序集,因此程序集清单中还包含了一个依赖关系(dependencie)列表。 程序集提供的所有类型和资源列表 清单中还包含许可(permission)这些许可设置访问权限,指出哪些程序才可以访问程序集的内容,部分程序集及其说明,System.dll 定义主要数据类型,如Sysrem.Object System.Data.dll 定义组成ADO.NET的组件 System.Drawing.dll 绘制各种图形的组件 System.Windows.Forms.dll 实现窗体、控件,1.5 命名空间namespace,命名空间是.NET框架中相关类和其他命名空间的集合。.NET Framework的类库中包含了大量的类,大约有了3500个类,所以在程序设计人员需要快捷的方法找到所需要的类。为此.NET Framework类库被分为许多命名空间,而在一个命名空间中包含了功能相似的类。,37,命名空间 1,英国,澳大利亚,纽卡斯尔,纽卡斯尔,命名空间 6-2,Class Manager long int salary; . ., long int salary; . ,Class Manager,命名空间 AdminDept,命名空间 ITDept,AdminDept.Manager,ITDept.Manager,类库,命名空间 2,Class SamsungTelevision ,Class SonyWalkman ,Class SonyTelevision ,Class SamsungWalkman ,长名称难以维护,namespace Samsung class Television . class WalkMan . ,Samsung.Television,Sony.Television,namespace Sony class Television . class WalkMan . ,有条理,有结构,命名空间 3,namespace 命名空间的名称 / 该名称空间的所有类都放在这里。 ,语法,命名空间 4,namespace Samsung class Monitor public void SayName() Console.WriteLine(“我是sansung的显示器:“); STAThread static void Main(string args) / / TODO: 在此处添加代码以启动应用程序 / ,命名空间 5,namespace Sony public class Monitor public void SayName() Console.WriteLine(“我是Sony的显示器:“); static void Main(string args) Samsung.Monitor sm = new Samsung.Monitor(); Monitor m = new Monitor(); sm.SayName(); m.SayName(); ,它使用句号分隔的命名结构,将逻辑上相关的类组织到一起,以便于查找和引用命名空间组织在程序集中定义的对象。 程序集可以包含一个或多个命名空间,一个命名空间又可以保存在一个或多个程序集中,而命名空间可以包含其他命名空间。例如System和System.Data命名空间都被保存在System.dll程序集中,在创建的应用程序中也可以引入多个命名空间共同完成某项功能。,命名空间实际上也是分层的,这意味着一个命名空间可以包含另一个命空间,而后者又包含了更为类似的类。每一个类一定完全属于一个命令空间,它不会同时属于多个命名空间。,常用命名空间,例,int number; string str; number=System.Console.Read(); str=System.Console.ReadLine(); System.Console.Write(“你好!”); System.Console.WriteLine(“你好!”); System是命名空间,Console是类,例,System.Data.SqlClient.SqlConnection sc= System.Data.SqlClient.SqlConnection(); 可采用引用方式简化: using System.Data.SqlClient; SqlConnection sc=new SqlConnection();,1.6 创建C#.NET应用程序,前面我们讲解了.NET Framework的基础知识,这里我们就来创建一个C#控制台应用程序,利用这个应用程序来了解C#的语言的基本语法和编程结构,以及如何调用C#编译器,编译应用程序。 在.NET Framework中,所有包含C#窗体、类等文件都具有后缀名为.cs,不能修改。我们知道.NET Framework允许我们使用文本编辑器来创建应用程序,不必使用IDE环境。,49,(1)记事本输入代码,using Sys

温馨提示

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

评论

0/150

提交评论