《C#程序设计》-蔡立军-电子教案 第02章

上传人:E**** 文档编号:89398724 上传时间:2019-05-24 格式:PPT 页数:23 大小:211.50KB
返回 下载 相关 举报
《C#程序设计》-蔡立军-电子教案 第02章_第1页
第1页 / 共23页
《C#程序设计》-蔡立军-电子教案 第02章_第2页
第2页 / 共23页
《C#程序设计》-蔡立军-电子教案 第02章_第3页
第3页 / 共23页
《C#程序设计》-蔡立军-电子教案 第02章_第4页
第4页 / 共23页
《C#程序设计》-蔡立军-电子教案 第02章_第5页
第5页 / 共23页
点击查看更多>>
资源描述

《《C#程序设计》-蔡立军-电子教案 第02章》由会员分享,可在线阅读,更多相关《《C#程序设计》-蔡立军-电子教案 第02章(23页珍藏版)》请在金锄头文库上搜索。

1、1,第2章 数据类型,2.1 值类型 2.2 引用类型 2.3 装箱和拆箱 2.4 类型转换,2,表2-1 C#的值类型,3,2.1.1 简单类型,1整数类型 整数类型的变量的值为整数。 C#支持八种整数类型:sbyte、byte、short、ushort、int、uint、long、ulong和char。 2布尔类型 布尔类型表示的逻辑变量只有两种取值:“真”或“假”,在C#中,分别采用“true”和“false”两个值来表示.,4,3字符类型 字符包括数字字符、英文字母和表达符号等。 例如:给一个字符变量赋值: char c = A; char c = x0032; char c = u0

2、032; 4.实数类型 (1)浮点类型 单精度(float)和双精度(double) (2)十进制类型 十进制类型(decimal)适合应用在不能接受舍入误差的计算中,当定义一个decimal变量并赋值给它时,使用m下标。,5,2.1.2 结构类型,把一系列相关的变量组织成为一个单一实体的过程,称为生成结构的过程;这个单一实体的类型称为结构类型;每一个变量称为结构的成员。 结构类型的变量采用struct来进行声明。 对结构成员的访问通过结构变量名.成员名。,6,例:定义职工worker结构类型: struct worker public string name; public uint age

3、; public string phone; public string address; ; worker p1; p1.name = “Tom”;,7,2.1.3 枚举类型,定义枚举类型的形式如下: enum 枚举类型名 数据1 , 数据2 , , 数据n; 例如,定义一个名为color的表示颜色的枚举类型: enum color Red,Green,Blue,White,Black ; color c1 /定义一个枚举变量c1; c1= Green;,8,同样也可以访问枚举成员,其格式为: 枚举名.枚举成员名 例如,要访问color中的Blue元素,其代码为: color.Blue,返回

4、目录,9,C#中的引用类型有四种:类、数组、代表和接口。 特殊数值null是所有引用类型都适用的,并且表示缺乏实例。 当一个引用不为null时,它始终指向一个特定类型的对象,而且该对象已被堆栈分配。,10,2.2.1 类,1object 类 定义object类型引用变量的形式为: object 标识符=数值; 例如: object abc1; object abc2=5.75;,11,2string 类 定义字符串引用变量的形式为: string 引用标识符=”字符串字面值”; 例如: string String1=“hello”; string String2=“hello”+“world”

5、; char String4=String10; bool a=(String1=String2);,12,2.2.2 数组,数组是一种数据结构,包含于数组中的变量,也称为数组的元素,都有相同的类型,而这个类型被称为数组的类型。 可以使用new运算符在C#中创建数组,数组必须先声明再使用。 在数组声明的时候可以对数组元素进行赋值,或者叫做对数组的初始化,也可以在使用的时候进行动态赋值。 在C#中数组可以是一维的,也可以是多维的,同样也支持矩阵和不规则的数组。,13,例2-1:创建一个一维int类型数组,初始化数组 元素并且把每个元素打印出来。 using System; class Test

6、static void Main() int arr = new int5; for (int i = 0; i arr.Length; i+) arri = i * i; for (int i = 0; i arr.Length; i+) Console.WriteLine(“arr0 = 1“, i, arri); ,14,一个数组的每一维都有相应的长度,这个长度是一个大于或等于零的整数,Array类提供了Length成员查询数组的长度。 System.Array类型是所有数组类型的抽象基类型,系统中存在从任意数组类型到System.Array类型的隐式转换。 使用System.Array

7、类的属性的语句格式为: 数组名.属性名,15,2.2.3 代表,代表(Delegates)是一种指向一个静态方法或一个对象的对象实例和对象方法的数据结构。代表实际上相当于C#中的函数指针。 定义和使用代表分为三步:声明、实例化和调用。在声明代表时,只需要指定代表指向的原型的类型,它不能有返回值,也不能带有输出类型的参数。 例如: delegate void MyDelegate(); /声明一个名为 /MyDelegate的代表,它没有任何参数并且返回void值,16,2.2.4 接口,接口定义了一个连接,一个类或者结构必须根据它的连接来实现接口。 接口可以包含一个和多个成员,这些成员可以是方

8、法、属性、索引指示器和事件,但不能是常量、域、操作符、构造函数或析构函数,而且不能包含任何静态成员。,17,例如: interface IExample string thisint index get; set; event EventHandler E; void F(int value); string P get; set; public delegate void EventHandler(object sender, EventArgs e);,返回目录,18,2.3.1 装箱,装箱就是将值类型变量隐式地转换为object对象类型变量,或转换为任何该值类型所执行的接口类型。具体过程

9、是:把一个值类型装箱,就是创建一个object对象类型的实例,并把该值类型的值复制给该实例。 例如: int val=1000; object obj=val; /装箱,将val的值复制给obj 在装箱后对val的任何修改均不会影响到obj对象的内容 。,19,2.3.2 拆箱,拆箱是装箱的逆过程。具体过程是:先确认object类型实例的值是否为给定值类型的装箱值,然后将这个实例的值复制给新的给定值类型的变量。 例如: int val=1000; object obj=val; /装箱 int val1=(int)obj; /拆箱 当装箱时,不需要显式地进行强制类型转换;当拆箱时,必须显式地进

10、行类型转换。,返回目录,20,2.4.1 隐式类型转换,隐式类型转换是系统默认的、不需要任何声明就可以进行的转换,它是由编译器根据不同类型数据间转换规则自动完成的,又称为自动转换。 例如: byte a=100; byte b=a; /相同类型隐式转换 float c=a; /不同类型隐式转换,21,隐式转换遵守“由低级类型向高级类型转换,结果为高级类型”的原则,从而保证计算精度。 隐式数值转换 隐式枚举转换 隐式引用转换,22,2.4.2 显式类型转换,显式类型转换就是强制执行从一种数据类型到另一种数据类型的转换,因此也称为强制类型转换,一般用强制类型转换符来实现。 显式类型转换的格式为: (类型名)变量或表达式 例如: int i,h; float j=4.5; i=(int)j; h=j;,23,与隐式类型转换相比,显式类型转换不一定总成功,有可能会造成数据信息的丢失或产生异常。 显式转换包括所有的隐式转换。 显式数值转换 显式枚举转换 显式引用转换,返回目录,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号