第3章 C#语法.ppt_第1页
第3章 C#语法.ppt_第2页
第3章 C#语法.ppt_第3页
第3章 C#语法.ppt_第4页
第3章 C#语法.ppt_第5页
已阅读5页,还剩39页未读 继续免费阅读

下载本文档

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

文档简介

1、第3章 C#语法,C#语言作为一种新的编程语言,对ASP.NET提供了强有力的支持,在微软的Visual Studio 2005中,C#和ASP.NET很好地结合在一起,使网页设计者可以更快捷、更高效地完成Web程序设计工作。掌握C#语言也成为掌握Web应用程序设计的基本要求之一。,本章要点,命名空间 装箱与取消装箱 运算符与表达式 程序控制结构 类与对象 继承 多态,3.1 C#简介,1. 命名空间,系统命名空间 C#中包含有80多个命名空间,每个命名空间中又有上千个类。 用户自定义命名空间 用户自定义命名空间是为了来更好的控制类名称和方法名称,2.用Visual Studio 2005创建

2、C#应用程序,C#应用程序创建的一般过程 1.打开VS,启动开发环境 2.打开新建项目对话框 3.在对话框中选择要创建的程序类型,并指定名称和路径 4.单击确认完成创建,C#程序结构介绍 1.用using指令引用该程序的要到的命名空间 2.使用Class关键字定义一个类 3.在类中定义方法和属性 注:一个应用程序一般都有一Main函数,为程序的入口.,3.注释,以C#中可以用两种注释: 单行注释:”/” int a=6; /定义了一个int型变量; 多行注释:”/*”和”*/” int a=8; /*定义了一个int型变量*/ int b=6;,3.2 数据类型,1. 值类型,值类型的变量直接

3、包含它们的数据,将一个值类型变量赋给另一个值类型时,只复制它包含的值,一个值类型的变化不会引起另一个变量的变化。 值类型的声明: 类型名 变量列表; 例如: char a,b,c; 变量在使用前对其初始化,如: a=new char();,2. 引用类型,引用类型用来存储对实际数据的引用,引用类型的变量又称为对象。当多个变量引用同一个对象时,对一个变量的操作可以影响到其他变量,其声明格式与初始化和值类型相似。 声明格式: 类型名 变量列表; 定义与初始化: object obj=new object();,3.装箱与取消装箱,装箱和取消装箱使值类型能够视为对象。对值类型装箱将把该值类型打包到O

4、bject引用类型的一个实例中。这使得值类型可以存储于垃圾回收堆中 装箱过程: int a=3; object b=(object) a; /装箱过程; 取消装箱: object a=3; int b=(int) a;,4. 类型转换,每种类型都有一个相关值。该值由存储在内存中的字节构成。许多值可以表示为多种类型。类型转换有隐式转换和显示转换。 隐式转换 int a=123456; float b=a; 显示转换 double a=88.12; int b=(int) a;,3.3 运算符与表达式,运算符 C#中提供了大量的运算符,运算符是批定在表达式中执行什么操作的符号。 表达式 表达式是可

5、以计算且结果为单个值的代码片段。表达式可以包含文本值、方法调用、运算符及其操作数或简单名称。,3.4 程序控制结构,1. 顺序结构,顺序结构是最简单的程序控制结构。顺序结构的程序是以从上到下的序执行程序中的每一条语句,通常情况下不会漏执行每一条语句。 例如: int a,b,c; a=2; b=4; c=a*b;,2. 选择结构,选择结构在一些书中又称为分支结构,选择结构的作用是在程序中传递控制权 。 常见的选择结构有以下几种:,If语句,1. If单分支 if(条件表达式) 语句块 在此格式中,当”条件表达式”的值为真时则执行大括号内语句块的内容,否则跳过此结构执行后面的语句.,2. If双

6、分支 If(条件表达式) 语句块1 else 语句块2 此结构中,如果”条件表达式”为真则执行其语句块1中的内空,否则执行的语句块2的内容.,3. If多分支 If(条件表达式2) 语句块1 else if(条件表达式2) 语句块2 else / ,在此结构中程序从上往下依次判断条件表达式,如果那个为真,则执行它对应的语句块,如果没有一个条件为真,就执行最后一个else中的语句。,Switch语句,Switch(表达式) case 条件1: 语句块1; case 条件2: 语句块2; case 条件n 语句块n; default 语句块; ,当程序执行时,计算表达式的值,计算的结果值与case

7、语名后的条件值比较,如果相等就执行其下的语句块,然后跳出此结构,如果没有与计算的值相等的项,则执行default对应的语句块。 注:在每个case块的最后要有一个break子句,switch语句不允许有同时执行两个case块的内容。,3. 循环结构,当需要重复执行某些语句或语段时,依据当前不同的任务,C#提供4个不同的循环语句: for语句 foreach语句 while语句 do语句,For语句,For(变量赋初值;条件表达式;步长) /重复执行的语句块; For语名的执行过程为:首先对循环变量赋初值,判断表达式是否为真,如果为真则执行循环体,否则跳出循环,执行完一次以后对循环变量增加一个步

8、长,再进行条件判断,如果为真则执行,否则跳出循环,依次执行,直到条件表达式为假为止。,Foreach语句,foreach(集合子项 in 集合) /对子项处理的语句块; foreach是对一个集合变量进行循环,依次取出集合中的一项对其操作,循环的执行次数为此集合中的子项的数目数。此语句对集合对象的循环操作非常方便。,While语句,While(条件表达式) /要重复执行的语句块 语句执行时,首先判断条件表达式是否为真,如果为真则执行,否则退出,执行完一次后再次判断条件,为真则执行,直至条件不成立时退出。,Do语句,Do /重复执行的语句块; While(条件表达式) Do语句执行时先执行语句块

9、,再判断while后的条件,为真时再次执行,否则退出,Do语句与While语句不一样的地方在于它至少执行一次。,4.异常处理,C#语言的异常处理功能提供了处理程序运行时出现的任何意外或异常情况的方法。异常处理使用try、catch、finally关键字来尝试处理可能未成功的操作,处理失败,以及在事后清理资源。C#中使用try块来对可能受异常影响的代码进行分区,并使用catch块来处理所产生的任何异常,不管是否引发异常,都可以使用finally块来执行代码。,Try语句,try /可能出现异常的语句块 catch (Exception e) /对异常e进行处理; Finally / ,把可能要出

10、错语句放入try块中,如果执行时出现异常,则执行catch块中的内容对异常进行处理,异常的信息包含在变量e中,但是否出现异常,finally块中的语句都会执行,一般用来执行一些清理工作。,3.5 类与面向对象,1.类与对象,类是C#中功能最为强大的数据类型。类定义了自己的数据和行为,可以为类创建它的对象。类可以被其他类继承。继承是实现代码重用的种手段。 类的定义格式如下:,类是通过Class关键字来定义的。 public class Customer /Fields, properties, methods and events go here. 例用new关键字可以来为类声明一个对象,如下所

11、示: Customer c=new Customer();,2.继承,继承也是实现代码重用的一种手段,类可以从其他类中继承。继承是通过使用派生来实现的,而派生意味着类是使用基类声明的,它的数据和行为从基类继承。 继承的示例 Public MenCustomer : Customer / Fields, properties, methods and events go here. 上例中MenCustomer类继承于Customer类,3. 多态,在面向对象的系统中,多态性是一个非常重要的概念,通过继承,一个类可以用作多种类型,如可以用作它自己的类型、任何基类型或者在实现接口时用作任何接口类型

12、,这称为多态性。C#支持两种类型的多态:编译时的多态性和运行时的多态性。,编译时的多态性 编译时的多态性是通过重载来实现的,对于非虚的成员来说,系统在编译时,根据传递的参数 返回的类型等信息决定实现何种操作,编译时的多态性有运行速度快的特点. 运行时的多态性 运行时的多态性就是指直到系统运行时,才根据实际情况决定实现何种操作,在C#中,运行时的多态性通过虚成员实现,运行时的多态性具有高度灵活和抽象的特点.,多态中涉及的概念,虚方法:用virtual关键字声明方法。运行时将由对象是什么类的实例来确定调用适的覆写的方法。虚方法可以有实现体。 抽象方法:用abstract关键字声明的方法。抽象方法必

13、须在派生类中覆写。抽象方法没有实现体。 重载:类中可以声明同名方法,以便在不同的情况下执行不同的版本。重载的特点是方法必须相同,但是签名不能完全相同。 覆写:在子类中用override关键字来重写基类中同名的Virtual方法或抽象方法。覆写要求签名相同。,Virtual关键字,virtual关键字用于修饰方法、属性、索引器或事件声明,并且允许在派生类中重写这些对象。 虚方法定义如下: public virtual double Area() return x * y; 此方法可被任何继承它的类重写,虚方法的几点说明,虚拟成员的实现可在派生类中的重写成员更改。 调用虚方法时,将为重写成员检查该

14、对象的运行时类型。将调用大部分派生类中的该重写成员,如果没有派生类重写该成员,则它可能是原始成员。 默认情况下,方法是非虚拟的。不能重写非虚方法。 virtual 修饰符不能与 static、abstract 和 override 修饰符一起使用。 除了声明和调用语法不同外,虚拟属性的行为与抽象方法一样。 在静态属性上使用 virtual 修饰符是错误的。 通过包括使用 override 修饰符的属性声明,可在派生类中重写虚拟继承属性。,Abstract关键字,abstract 修饰符可以和类、方法、属性、索引器及事件一起使用。在类声明中使用abstract修饰符以指示某个类只能是其他类的基类

15、。标记为抽象或包含在抽象类中的成员必须通过从抽象类派生的类来实现。 虚类和虚方法的定义如下:,class Square : ShapesClass int x, y; public override int Area() return x * y; ,abstract class ShapesClass abstract public int Area(); ,抽象类的特性:,抽象类不能实例化。 抽象类可以包含抽象方法和抽象访问器。 不能用 sealed修饰符修改抽象类。 从抽象类派生的非抽象类必须包括继承的所有抽象方法和抽象访问器的实实现。,抽象方法的特性:,抽象方法是隐式的虚方法。 只允许

16、在抽象类中使用抽象方法声明。 因为抽象方法声明不提供实际的实现,所以没有方法体;方法声明只是以一个分号结束,并且在签名后没有大括号 ( ) 在抽象方法声明中使用 static 或 virtual 修饰符是错误的。 除了在声明和调用语法上不同外,抽象属性的行为与抽象方法一样。 在派生类中,通过包括使用 override 修饰符的属性声明,可以重写抽象的继承属性。,Override 关键字,要扩展或修改继承的方法、属性、索引器或事件的抽象实现或虚实现,必须使用 override 修饰符。 举例说明如下:,abstract class ShapesClass abstract public int

17、Area(); class Square : ShapesClass int x, y; public override int Area() return x * y; ,Override的几点说明,override方法提供从基类继承的成员的新实现。 通过 override 声明重写的方法称为重写基方法。 重写的基方法必须与 override 方法具有相同的签名。 不能重写非虚方法或静态方法。重写的基方法必须是 virtual、abstract 或 override 的。 override 声明不能更改 virtual 方法的可访问性。override 方法和 virtual 方法必须具有相同的访问级别修饰符。 不能使用修饰符 new、static、virtual 或 abstract 来修改 override 方法。,New与override关键字,C# 允许派生类包含与基类方法名称相同的方法

温馨提示

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

最新文档

评论

0/150

提交评论