《C#语言程序设计基础.ppt》由会员分享,可在线阅读,更多相关《C#语言程序设计基础.ppt(47页珍藏版)》请在三一办公上搜索。
1、第3章 C#语言程序设计基础,主讲:吕志峰,2023年11月7日,计算机应用技术系教师专用(ASP.NET程序设计),教学重点,本章重点介绍基于.NET技术架构的基础语言C#语言的特点、语法结构及程序设计方法。,2023年11月7日,计算机应用技术系教师专用(ASP.NET程序设计),3.1 C#语言概述,C#是微软公司专门为.NET量身定做的编程语言,它与.NET有着密不可分的关系。C#的类型就是.NET框架所提供的类型,C#本身并无类库,而是直接使用.NET框架所提供的类库。另外,类型安全检查、结构化异常处理也都是交给CLR处理的。因此,C#是最适合开发.NET应用的编程语言。,2023年
2、11月7日,计算机应用技术系教师专用(ASP.NET程序设计),3.1 C#语言概述,微软给C#语言的定义:C#是一种源自于C和C+语言之上的,简单的、现代的和类型安全的面向对象的编程语言。C#的目的就是综合Visual Basic的高生产率和C+灵活性。,2023年11月7日,计算机应用技术系教师专用(ASP.NET程序设计),3.1 C#语言概述,C#语言的特点简洁的语法C#语言在语法上简化了C+的冗余的操作符,将这些操作符统一为“.”,并且去除了对指针的支持,使语法结构变得简洁。符合CTS系统规范,类型系统的统一,降低语言的复杂性。面向对象的特性C#语言具有一切面向对象的特性,如封装、多
3、态和继承,C#语言的每一种类型都可以看作是一个对象,提出了装箱与拆箱的概念,实现了值类型与引用类型之间的转换。,2023年11月7日,计算机应用技术系教师专用(ASP.NET程序设计),3.1 C#语言概述,完全的安全性和错误处理C#语言有严格异常处理机制和内存处理机制,消除程序中一些细小的错误。不允许使用未经初始化的变量,保证了类型的安全,其资源回收功能减轻了内存的负担。灵活性与兼容性C#语言语法结构灵活,虽然不允许使用指针,但不是完全不能使用,而是可以通过将程序声明为不安全的,就可以使用指针,静态数组等不安全的结构。其语法风格与C类似,使得可以与C风格的API交互。,2023年11月7日,
4、计算机应用技术系教师专用(ASP.NET程序设计),3.1 C#语言概述,C#程序结构,using System;class Hello public static void Main()Console.WriteLine(您好!);,2023年11月7日,计算机应用技术系教师专用(ASP.NET程序设计),3.1 C#语言概述,C#编译器.NET Framework SDK内置了C#编译器“csc.exe(C Sharp Compiler)”,该文件在“系统目录Microsoft.NETFrameworkv版本号”目录下。如果不能执行该命令,需要将该目录添加到操作系统的环境变量中。可以在命令
5、窗口编译C#文件,假如要编译名为1-01.cs的C#文件。命令行的语法为:csc 1-01.cs,2023年11月7日,计算机应用技术系教师专用(ASP.NET程序设计),3.2 数据类型,C#中包括两种变量类型:值类型与引用类型。值类型的数据是直接包含数据的数据。引用类型的数据是包含地址的数据。,2023年11月7日,计算机应用技术系教师专用(ASP.NET程序设计),3.2 数据类型,值类型C#语言值类型分为:简单类型、结构类型、枚举类型。其中简单类型包括:整型类型、布尔类型、字符类型和实数类型。,2023年11月7日,计算机应用技术系教师专用(ASP.NET程序设计),3.2 数据类型,
6、整数类型整数类型的变量值是整数。整数类型分为8种:短字节型(sbyte)、字节型(byte)、短整型(short)、无符号短整型(ushort)、整型(int)无符号整型(uint)、长整型(long)和无符号长整型。字节型为8位数据,短整型为16位数据,整型为32位数据,长整型为64位数据。整数可表示为八进制和十六进制数,前导0表示该数为八进制,例如0777,前导为0 x表示该数为十六进制数,例如:0 xFF。表示long型常数在字面值添加一个L或l。如1236l,2023年11月7日,计算机应用技术系教师专用(ASP.NET程序设计),3.2 数据类型,布尔类型布尔类型用来表示一个事件或状
7、态的“真”和“假”,在C#中使用“true”和“false”表示。类型符号为bool。例如:bool b=true;关系与逻辑运算的结果为布尔类型。字符类型C#中的字符类型全都采用国际公认的Unicode字符集标准。位数为16位数据,与整型不通用。类型符号为char。例如:char c=a;字符常量用单引号括起来的字符,如a.,2023年11月7日,计算机应用技术系教师专用(ASP.NET程序设计),3.2 数据类型,实数类型C#语言中实数类型包括浮点类型,即单精度(float)与双精度类型(double)。十进制类型(decimal)是专门为金融和货币方面的计算而设置的一种数据类型,28到2
8、9位有效数字。在实数类型中数据并默认为双精度类型,所以在使用实数类型常数时,如果为单精度型要加上f后缀,十进制类型要加上m后缀。例如float fl=12.3f decimal de=25.5m,2023年11月7日,计算机应用技术系教师专用(ASP.NET程序设计),3.2 数据类型,结构类型把一系列相关的变量组织在一起,使其成为一个单一实体的过程,称为创建结构的过程。结构的定义 修饰符 struct 结构名 修饰符类型符 变量名,2023年11月7日,计算机应用技术系教师专用(ASP.NET程序设计),3.2 数据类型,结构体的声明与赋值声明 结构名 变量名 如 aa a1;赋值 结构变量
9、名.成员名=值 如:a1.a=10;,public struct aa public int a,b;public aa(int x,int y)a=x;b=y;,2023年11月7日,计算机应用技术系教师专用(ASP.NET程序设计),3.2 数据类型,枚举类型枚举类型是由一组称为枚举数列表的命名常数组成的独特类型。每一个枚举类型都有一个相应的整数类型,称为枚举类型的基本类型。常见的基本类型有byte、short、int或long等,默认类型是int,值从0开始计数。,3.2 数据类型,声明枚举类型的格式 enum 枚举名枚举值=整型常量,如:enum weekday Monday=1,Tu
10、esday,Wednesday,Thursday,Friday,Saturday,Sunday声明枚举变量 枚举类型名 枚举变量名 如:weekday week;,2023年11月7日,计算机应用技术系教师专用(ASP.NET程序设计),3.2 数据类型,引用类型C#引用类型有6种:类、对象、字符、接口、数组和委托。其中对象类型指的是所有类型公共基类型object类型,所以类型都可以转化为此类型。字符串类型string,用双引号括起来的字符序列。如:string s=“abc”,2023年11月7日,计算机应用技术系教师专用(ASP.NET程序设计),3.2 数据类型,数组类型数组是一种类型相
11、同的有序数据。数组的定义 类型 数组名=new 类型元素个数 类型,数组名=new 类型个数1,个数2 数组的下标是从0开始的 如:int a=new int5 int,b=new int3,4,2023年11月7日,计算机应用技术系教师专用(ASP.NET程序设计),3.2 数据类型,装箱与拆箱装箱与拆箱用来实现值类型与引用类型之间的转换,主要实现的是对象类型、枚举类、接口类型等与值类型的转换。装箱的核心是把值类型转换为对象类型。如:int i=100;object obj=i;,2023年11月7日,计算机应用技术系教师专用(ASP.NET程序设计),3.2 数据类型,装箱与拆箱拆箱的核心
12、是把对象类型转换为值类型。这种转换需要进行强制类型的转换。如:int i=100;object obj=i;int j=(int)obj,2023年11月7日,计算机应用技术系教师专用(ASP.NET程序设计),3.2 数据类型,变量变量的声明 修饰符 类型符 变量名=值说明:其中修饰符主要表示变量的作用域。主要包括public private protected 类型符可以是一切合法的标识符,2023年11月7日,计算机应用技术系教师专用(ASP.NET程序设计),3.2 数据类型,常量就是指在使用过程其值不会发生变化的量。声明格式 修饰符 const 类型符 常量名=值说明:其中修饰符主要
13、表示变量的作用域。主要包括public private protected 类型符可以是一切合法的标识符,2023年11月7日,计算机应用技术系教师专用(ASP.NET程序设计),3.3 基本操作,流程控制条件语句 格式 if(布尔表达式)elseSwitch 格式 switch(常数)case:常数 语句1 break;.default:语句n,2023年11月7日,计算机应用技术系教师专用(ASP.NET程序设计),3.3 基本操作,for语句 格式 for(表达式1;表达式2;表达式3)语句体;,2023年11月7日,计算机应用技术系教师专用(ASP.NET程序设计),3.3 基本操作,
14、foreach语句 格式:foreach(类型 变量 in 集合)语句体;,2023年11月7日,计算机应用技术系教师专用(ASP.NET程序设计),3.3 基本操作,while语句 格式:while(布尔表达式)语句体;,2023年11月7日,计算机应用技术系教师专用(ASP.NET程序设计),3.3 基本操作,do-while语句 格式:do 语句体;while(布尔表达式),2023年11月7日,计算机应用技术系教师专用(ASP.NET程序设计),3.3 基本操作,break语句用来退出最近的循环体。continue语句用来退出最近一次循环,开始新的循环。return语句返回方法的返回值
15、。return 表达式,2023年11月7日,计算机应用技术系教师专用(ASP.NET程序设计),3.3 基本操作,命名空间命名空间是.NET提供应用程序代码容器的方式,这样代码及其内容就可以惟一地被标识。解决了在软件协同开发中命名冲突的问题。是.NET Framework中给项目分类的一种方式所有程序是用命名空间组织起来的。.NET类库其实就是用命名空间组织起来的。命名空间可以嵌套使用。可以使用using关键字将一个命名空间中定义的类或类型导入到另一个命名空间中使用。,2023年11月7日,计算机应用技术系教师专用(ASP.NET程序设计),3.3 基本操作,命名空间定义格式 namespa
16、ce space-name namespace-body,2023年11月7日,计算机应用技术系教师专用(ASP.NET程序设计),3.3 基本操作,异常处理程序中对异常处理能使程序更加健壮。捕获异常 try catch(异常类 ex),2023年11月7日,计算机应用技术系教师专用(ASP.NET程序设计),3.3 基本操作,异常处理tryfinally其中finally子句无论发不发生异常都会执行。,2023年11月7日,计算机应用技术系教师专用(ASP.NET程序设计),3.4 面向对象的特性,C#语言是一个完全面向对象的语言,支持一切面向对象的特性。C#语言以类作为其程序的基本组成单元
17、。,2023年11月7日,计算机应用技术系教师专用(ASP.NET程序设计),3.4 面向对象的特性,类类是一切面向对象语言的核心。类构成了实现c#面向对象程序设计的核心。类把数据和在该数据上工作的方法封装在一起。类是创建对象的模板,每个对象都保护数据,并提供处理和访问数据的方法。,2023年11月7日,计算机应用技术系教师专用(ASP.NET程序设计),3.4 面向对象的特性,定义类的形式为:类修饰符 class 类名:基类和接口 访问修饰符 类型 变量标识符 方法修饰符 返回类型 方法标识符(参数表)如:public class apublic int I,j;public a()i=10
18、;j=10;public int add()return i+j;,2023年11月7日,计算机应用技术系教师专用(ASP.NET程序设计),3.4 面向对象的特性,类定义形式的说明:类修饰符表示类的访问权限,主要有public:表示不限制对类的访问。protected:表示只能从所在类或所在类派生的 子类访问。private:只有对.NET应用程序和库才能访问。abstract:定义抽象类。sealed 密封类,不允许被继承,2023年11月7日,计算机应用技术系教师专用(ASP.NET程序设计),3.4 面向对象的特性,类的方法的定义 格式:方法修饰符 返回类型 方法名(形参表)方法体,2
19、023年11月7日,计算机应用技术系教师专用(ASP.NET程序设计),3.4 面向对象的特性,类的方法的定义参数表的说明:C#中方法参数有四种类型,分别为值参数,引用参数,输出参数,数组参数。值参数的一般形式:public float add(float x)引用参数的一般形式:public float add(ref float x)输出参数的一般形式:public float add(out float x)可变参数的一般形式:public float add(params float x),2023年11月7日,计算机应用技术系教师专用(ASP.NET程序设计),3.4 面向对象的特性
20、,构造方法的定义:是在创建一个类的对象时,被自动调用的一个方法,通常用于初始化。它与类名一致,无返回值和类型。一般形式为 classname(params)类的对象的创建的一般形式为 classname classvalue=new classname(params)类的方法与成员的调用一般形式为:对象名.成员方法名/公有数据成员名,2023年11月7日,计算机应用技术系教师专用(ASP.NET程序设计),3.4 面向对象的特性,类类的静态成员与实例成员,类中的成员默认为实例成员,并且它属于某个对象,而静态成员是由static关键字定义的成员,它属于整个类,其只用类名调用,也可以被其它静态方法
21、成员调用。其一般形式为 public static a;,2023年11月7日,计算机应用技术系教师专用(ASP.NET程序设计),3.4 面向对象的特性,继承C#语言类的继承的一般形式 class class-name:baseclassname class-body;调用基类的构造方法:当创建一个子类对象时,它的基类的构造函数也被调用了,以此类推,一连串的调用都会被执行,直到不再有基类为止。还可以显式调用基类的构造方法,其形式为classname():base(params);,2023年11月7日,计算机应用技术系教师专用(ASP.NET程序设计),3.4 面向对象的特性,继承在派生类中
22、可以实现和基类同名的方法,这种现象叫方法抑制。为从派生类中抑制基类中某一方法,要使用new关键字加上派生类的方法定义,这样该方法就隐藏了同名的继承方法。一般形式为:new 方法修饰符 返回类型 要抑制的(基类的)方法名()多态性是指同一操作用于不同的类的实例,不同的类就进行不同的解释,最后产生不同的执行结果,2023年11月7日,计算机应用技术系教师专用(ASP.NET程序设计),3.4 面向对象的特性,继承virtual(虚拟方法)的定义形式 virtual 方法修饰符 返回类型 方法名(参数表)方法体override(抑制方法)的定义形式 override 方法修饰符 返回类型 方法名(参数表)方法体,2023年11月7日,计算机应用技术系教师专用(ASP.NET程序设计),3.4 面向对象的特性,属性 属性是类、结构和接口的属性的命名成员,它们通过访问器提供读写或计算私有域的灵活机制。属性的声明格式:修饰符 类型 标识符 访问器声明,2023年11月7日,计算机应用技术系教师专用(ASP.NET程序设计),3.4 面向对象的特性,接口声明接口的形式:修饰符 interface 接口名称:基接口列表 接口体;,谢谢大家!,