ASP.NET+SQL Server商务系统开发与典型实例 第2章C# 语言快速学习_第1页
ASP.NET+SQL Server商务系统开发与典型实例 第2章C# 语言快速学习_第2页
ASP.NET+SQL Server商务系统开发与典型实例 第2章C# 语言快速学习_第3页
ASP.NET+SQL Server商务系统开发与典型实例 第2章C# 语言快速学习_第4页
ASP.NET+SQL Server商务系统开发与典型实例 第2章C# 语言快速学习_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

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

文档简介

1、2第2章 C# 语言快速学习本章要点:要从事ASP.NET开发就必须了解什么是.NET平台,因为ASP.NET是整个.NET技术的一部分。本章主要从程序开发的角度阐述什么是.NET,重点介绍公共语言运行库以及.NET框架类库,并通过实际的例子展示在.NET平台下的跨语言编程。在.NET环境下,各种语言要被编译成为微软中间语言,然后在公共语言运行库上运行,虽然这时候所有的语言只是合成微软中间语言的工具而已,无论使用哪种语言都可以达到同样的目的,但微软公司还是随着.NET平台同时推出了一种新的编码语言C#(读C Sharp)。在.NET环境下,利用C# 语言可以编写6种不同类型的应用程序:Wind

2、ows 应用程序(具有Windows用户界面的 Visual C# 应用程序);类库(为创建可在其他应用程序中使用的类而创建一个项目);控制台应用程序(具有命令行界面的Visual C# 应用程序);ASP.NET Web应用程序(具有Web用户界面的 Visual C#应用程序);Web服务(使用 Visual C# 创建其他应用程序可以访问的 XML Web Services);ASP.NET移动Web应用程序(可以在 PDA、移动电话和其他移动设备上查看的应用程序)。3第2章 C# 语言快速学习本章内容包括: .NET预览 公共语言运行库介绍 跨语言编程 .NET框架类库 C# 语言数据

3、结构 C# 语言基本语句 类与方法 面向对象程序设计 继承和多态42.1 .NET预览从从2000年年6月开始,月开始,.NET这个名词频频出现在这个名词频频出现在各种媒体以及书籍上,比尔各种媒体以及书籍上,比尔盖茨曾多次表盖茨曾多次表示示.NET对于微软的意义决不亚于当年对于微软的意义决不亚于当年Windows系统的诞生。系统的诞生。.NET包含的内容非常包含的内容非常多,本章只是重点介绍与程序开发关系密切相多,本章只是重点介绍与程序开发关系密切相关的内容,从一个程序员的视点阐述什么关的内容,从一个程序员的视点阐述什么是是.NET。52.1.1 .NET是什么Microsoft.NET是是M

4、icrosoftXMLWebServices平台。平台。XMLWebServices允许应用程序通过允许应用程序通过Internet进进行通讯和共享数据,而不管所采用的是哪行通讯和共享数据,而不管所采用的是哪种操作系统、设备或编程语言。种操作系统、设备或编程语言。Microsoft.NET平台提供创建平台提供创建XMLWebservices并将这些服务集成在一起使用。并将这些服务集成在一起使用。.NET的核心是的核心是“XMLWebServices”,除去这层意思,上面的话就直接表明除去这层意思,上面的话就直接表明Microsoft.NET其实是一个平台其实是一个平台(如图如图2.1),这点是

5、问题的本质,这说明,这点是问题的本质,这说明Microsoft.NET并不是一门新的编程语并不是一门新的编程语言,更不是一个操作系统,而是一种基础言,更不是一个操作系统,而是一种基础设施,一种环境。设施,一种环境。62.1.2 .NET设计目标.NET的设计理念就是的设计理念就是“软件变服务软件变服务”,它完,它完全消除了全消除了COM的缺陷,不再出现注册,实现的缺陷,不再出现注册,实现了通用类型系统,定义了统一的实例和类型,了通用类型系统,定义了统一的实例和类型,体现了清晰的面向对象编程。另外,体现了清晰的面向对象编程。另外,.NET所提所提供的开发环境更加健壮和安全,应用程序和组供的开发环

6、境更加健壮和安全,应用程序和组件可以共享或私有,统一组件的多个版本可以件可以共享或私有,统一组件的多个版本可以共存,而且它内置了很多安全控制,如强制代共存,而且它内置了很多安全控制,如强制代码访问安全机制,基于代码运行的身份控制安码访问安全机制,基于代码运行的身份控制安全机制,通过配置策略文件管理安全机制,全机制,通过配置策略文件管理安全机制,ASP.NET身份验证机制等。身份验证机制等。72.2 .NET核心介绍如图如图2.2所示,在介绍所示,在介绍.NET的书籍里的书籍里都会有这幅图,因为它很清楚的反映都会有这幅图,因为它很清楚的反映了了.NET中与开发有关的主要元素以及中与开发有关的主要

7、元素以及它们之间的层次关系。它们之间的层次关系。ASP.NET是使开发人员能够使是使开发人员能够使用用.NET开发基于开发基于Web的应用程序的的应用程序的环境,用来设计部署在服务器上的环境,用来设计部署在服务器上的Web站点以及我们平常所说的站点以及我们平常所说的B/Sj结结构程序构程序(如图如图2.3);XMLWebServices是类似于常见是类似于常见Web站点的应站点的应用程序组件,但是与用程序组件,但是与Web的应用程序的应用程序不同,它不具有界面并且不以浏览器不同,它不具有界面并且不以浏览器为目标,它作为传统的客户端应用程为目标,它作为传统的客户端应用程序、序、Web应用程序、其

8、他应用程序、其他XMLWebServices组件来使用。组件来使用。82.2.1 公共语言运行库(CLR)如图2.4列出了公共语言运行库所能实现的绝大部分功能,它管理运行代码,确认类型的安全性,提供垃圾收集,异常处理,对半信任代码的访问安全控制,提供公共类型系统(Common Type System),可以访问系统资源和本地 API。1. CLR编译执行模型首先,公共语言运行库其实就是一个虚首先,公共语言运行库其实就是一个虚拟机拟机 由于所有语言最终被编译成微软中间语由于所有语言最终被编译成微软中间语言言(公共语言运行库内建了统一的对象系公共语言运行库内建了统一的对象系统统),只要选择喜欢的语

9、言使用即可,目,只要选择喜欢的语言使用即可,目前支持前支持20多种语言,包括多种语言,包括VB、C+、C#、Java、Jscript、Perl和和COBOL,并能,并能实现跨语言继承,调试器等可以跨语言实现跨语言继承,调试器等可以跨语言工作。工作。92.2.1 公共语言运行库(CLR)2. CLR编译执行过程公共语言运行库的编译执行过程如图2.6所示,一旦目标类被装载,类装载器向该类的每个方法发出一个小的存根,就像一个函数的头。 类装载器。 类验证器。 JIT编译器。 102.2.2 .NET框架类库(FCL)1. .NET数据类型值类型:在堆栈中分配的值,不能为空,变量按值传递,是密封的,包

10、括下面内容。基本类型;结构体;枚举。引用类型:变量按指针传递,包括下面内容。类;接口;代理。2. .NET命名空间.NET框架类库非常的庞大,为了能使学习和使用更加的简单和容易,7000多个类型按照一定的规则划分为100多个命名空间(图2.10) 。112.2.2 .NET框架类库(FCL)3. .NET Framework 类库常用命名空间 System System.Collections System.Collections.Specialized System.Configuration System.Data System.Drawing System.IO System.Net S

11、ystem.Runtime.Remoting System.Security System.Threading 122.2.2 .NET框架类库(FCL)System.Web System.Web.Security System.Web.Services System.Web.UI System.Web.UI.Design System.Web.UI.WebControls System.Windows.Forms System.Windows.Forms.Design System.Xml 132.3 第一个C# 程序【例【例2.2】HelloWorld示例程序示例程序(1)确保系统里安装了

12、Internet信息服务(IIS),Visual Studio .NET企业级结构设计版或者企业开发版。(2)打开Visual Studio .NET企业级结构设计版或者企业开发版软件,选择菜单【文件】|【新建】|【项目】命令,弹出【新建项目】对话框。(3)在【新建项目】对话框左边的菜单里,选择【Visual C#项目】,在【模板】面板中选择【ASP.NET Web应用程序】,在【名称】文本框里输入项目名称,这里输入 http:/localhost/HelloWorld,然后单击【确定】按钮创建解决方案。(4)在【解决方案资源管理器】里双击WebForm1.aspx文件,则在右边出现WebFo

13、rm1.aspx文件的设计界面,选择菜单【视图】|【工具箱】命令打开工具箱面板,然后双击或者拖动工具箱面板中的Button和Label控件到WebForm1.aspx文件设计界面上,如图2.11。142.3 第一个C# 程序(5) 右键单击右键单击WebForm1.aspx文件设计界面的文件设计界面的Button控件,选择【属性】对话框,然后在属性面控件,选择【属性】对话框,然后在属性面板里修改板里修改Text属性为属性为HelloWorld,用同样方法调出,用同样方法调出Label属性面板,删除它的属性面板,删除它的Text属性值。属性值。(6) 双击双击Button控件,在弹出的控件,在弹

14、出的WebForm1.aspx.cs文件里修改代码如下:文件里修改代码如下:代码2.7private void Button1_Click(object sender, System.EventArgs e)String labelText = “Hello World!”; Label1.Text = labelText;152.4 C# 程序结构介绍C#语言程序的程序结构包括命名空间语言程序的程序结构包括命名空间(包含类包含类型和其他命名空间型和其他命名空间)、类型定义、类型定义(包含类、结构、包含类、结构、接口、枚举以及代理接口、枚举以及代理)和流程控制和流程控制(包含条件语包含条件语句

15、、循环语句等句、循环语句等)。它没有头文件也没有对声。它没有头文件也没有对声明次序的依赖。明次序的依赖。C#程序可由一个或多个文件组程序可由一个或多个文件组成。每个文件可包含一个或多个命名空间。一成。每个文件可包含一个或多个命名空间。一个命名空间除了可包含其他命名空间外,还可个命名空间除了可包含其他命名空间外,还可包含类、结构、接口、枚举、代理等类型。包含类、结构、接口、枚举、代理等类型。162.4.1 C# 语言数据类型1. 系统内建各种类型具体的各种C# 内置数据类型见表2.1。语言类型数 据 类 型引用类型object, string值类型sbyte, short, int, long(

16、有符号)byte, ushort, uint, ulong(无符号)float, double, decimal(浮点数)char(字符)Bool(逻辑)172.4.1 C# 语言数据类型2. 使用内置数据类型内置数据类型是命名空间System提供类型的别名,比如,int = System.Int32,和其他语言一样,内置的数据类型在具体的编程过程中有3种用法。1)作为变量2)作为常数3)作为参数182.4.2 基本语句1. 命名空间和分隔符在C# 程序中,用作为程序段的分隔符,从而区分各个不同的命名空间、类、函数等的范围。一些要注意的地方如图2.12所示。2. 流程控制C#语言和其他语言一样

17、也有着流程控制语句,实现的功能包括选择、循环、跳转,关于这些基本的if、case等语句和C+、Java等语言都很相似,这里不再一一介绍,如果不清楚的地方,可以在MSDN上查找或者参阅其他介绍C# 语言的书籍。192.4.3 类与方法为了说明类与方法,还是坚持一贯的原则,先用代码来说话,为了说明类与方法,还是坚持一贯的原则,先用代码来说话,关于概念问题在后面的关于概念问题在后面的“面向对象编程面向对象编程”一节中有所介绍,这一节中有所介绍,这里先来修改代码里先来修改代码2.8,产生代码,产生代码210和代码和代码2.11,代码,代码2.12三个三个版本的代码,但实现的功能是差不多的,下面就具体比

18、较一下版本的代码,但实现的功能是差不多的,下面就具体比较一下这这3段代码,从而说明类与方法的使用。(参见教材段代码,从而说明类与方法的使用。(参见教材P32)比较代码比较代码2.10和代码和代码2.8,它们实现的功能是完全一样的,但,它们实现的功能是完全一样的,但是在代码上是有所区别的,在代码是在代码上是有所区别的,在代码2.10中定义了方法中定义了方法ShowMessage,把显示,把显示“HelloWorld”信息的功能封装在里信息的功能封装在里面;比较代码面;比较代码2.10和代码和代码2.11,它们实现的功能也是完全一样,它们实现的功能也是完全一样,但代码也存在差异,在代码但代码也存在

19、差异,在代码2.11里不但定义了方法里不但定义了方法ShowMessage,同时也定义了类,同时也定义了类Message;代码;代码2.12的在功的在功能上有所变化,它新引进了一个文本框能上有所变化,它新引进了一个文本框TextBox1,从而实现,从而实现了在文本框里输入内容,单击按钮后页面显示文本框中内容的了在文本框里输入内容,单击按钮后页面显示文本框中内容的功能。功能。202.5 面向对象编程熟悉面向对象的读者很快就会发现上面的代码是典型熟悉面向对象的读者很快就会发现上面的代码是典型的结构化的方法,结构化的方法是以具体的功能为核的结构化的方法,结构化的方法是以具体的功能为核心来组织程序的结

20、构,它的封装度仅为心来组织程序的结构,它的封装度仅为1级,即仅有级,即仅有对于特定的功能的封装对于特定的功能的封装(函数函数)。这使得结构化的方法。这使得结构化的方法很难适应需求的变化,面向对象的方法正是在这一点很难适应需求的变化,面向对象的方法正是在这一点上优于结构化的方法。上优于结构化的方法。如果在系统的开发过程中发现需要对一种新的错误进如果在系统的开发过程中发现需要对一种新的错误进行处理,比如:用户认证错误,该如何做使得我们的行处理,比如:用户认证错误,该如何做使得我们的系统能够增加对于此项功能的需求呢?一种比较简单、系统能够增加对于此项功能的需求呢?一种比较简单、直接的做法就是在增加一

21、条用来处理此项错误的直接的做法就是在增加一条用来处理此项错误的case语句。这种方法的确能够工作,但是这样做是语句。这种方法的确能够工作,但是这样做是要付出代价的。要付出代价的。212.6 C# 面向对象设计C#语言是彻底的面向对象的语言,它拥有和语言是彻底的面向对象的语言,它拥有和其他面向对象语言共同的特点,如类、接口等;其他面向对象语言共同的特点,如类、接口等;但它也有自己的一些特点,比如但它也有自己的一些特点,比如.NET有垃圾有垃圾回收机制,内存的管理是自动进行的,内存的回收机制,内存的管理是自动进行的,内存的再收集属于后台任务,虽然这时候牺牲了一些再收集属于后台任务,虽然这时候牺牲了

22、一些性能,但这样能使开发者更专注于业务的开发。性能,但这样能使开发者更专注于业务的开发。222.6.1 类与对象1. 定义从程序员的角度来讲,所谓的类就是一种包括数据和功能的数据结构;对象是类的实例,它有自己的状态、行为和特性。类声明语法:属性信息访问修饰字class 标识符 :基类,实现的接口类可以嵌套,并且有一系列的访问修饰符来控制访问的级别和范围。public:无访问限制。private:标记为private的类A中的成员,只对类A是可访问的。protected:标记为private的类A中的成员,只对类A和类A的派生类是可访问的。internal:标记为internal的类A中的成员,只对类A所处程序集中的任何类是可访问的。Internal protected:带此标记的类A中的成员,对类A和从类A派生的类,以及A所处程序集中的任何其他类都是可访问的。232.6.1 类与对象2. 对象的管理C#语言对于对象的管理机制是很完备的,它可以方便而安全地创建对象,在创建对象时与其他面向对象语言

温馨提示

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

评论

0/150

提交评论