文档详情

第三章  数据类型.ppt

发布:2017-05-30约字共43页下载文档
文本预览下载声明
第三章  数据类型 回顾 工作任务 本章目标 使用C# 中的基本数据类型 理解装箱和拆箱的概念 3.1 类型概述 C#语言中的每一个类型都直接或间接派生于object类型,即object类型是C#语言所有类型的最终基类型。 C# 的基本数据类型 3-1 C# 中的数据类型分为两个基本类别 值类型 表示实际数据 只是将值存放在内存中 值类型都存储在堆栈中 int、char、结构 引用类型 表示指向数据的指针或引用 包含内存堆中对象的地址 为 null,则表示未引用任何对象 类、接口、数组、字符串 值类型和引用类型细分 3.2 值类型 值类型包括结构类型、枚举类型、布尔类型、自定义结构类型、sbyte、byte、char、short、ushort、int、uint、long、ulong、float、double和decimal类型。 值类型的变量直接包含其数据,其值不可能为null。 3.2.2 整数类型 整数类型包括9种类型,如sbyte、byte、short等。它们的具体说明、.NET Framework中的名称和取值范围如表3.1所示。 1.int类型 2.long类型 3.char类型 3.2.3 浮点型 C#语言包括两种浮点型:float和double。 float类型表示32位的单精度浮点数,它的取值范围为±1.5e-45~±3.4e38。 double类型表示64位的双精度浮点数,它的取值范围为±5.0e-324~±1.7e308。 浮点数包括以下3种特殊的值。 正零和负零 正无穷大和负无穷大 非数字(Not-a-Number)值 书写时在数字后加 f 和 d 区分。 3.2.4 decimal类型 decimal类型表示128位的数值,取值范围为±1.0e-28~±7.9e28,特别适用于财务计算和货币计算。 在书写decimal类型的值时,需要在数值后添加后缀m,否则编译出错。 在浮点型和decimal类型之间不存在隐式转换。如果要转换浮点型到decimal类型,则必须使用强制转换方法。 3.2.5 bool类型 bool类型表示布尔逻辑量。它只包含两个值:true和false,而且这两个值意义恰好相反。 数据类型-2 3.2.6 枚举类型 枚举(enum)类型也是一种值类型,它具有命名常量的独特的类型。 枚举类型一般包含一个或多个枚举值,每一个枚举值之间用逗号(,)分隔。 枚举值又称为枚举数,它的默认基础类型为int。 默认情况下,第一个枚举数的值为0,后面的每一个枚举数的值依次增1。 什么是枚举 用一种新的类型定义enum 枚举定义 枚举是一组描述性的名称 枚举定义一组有限的值,不能包含方法 对可能的值进行约束 枚举允许描述性名称表示整数值 枚举的特点 枚举的典型应用 3-3 引用类型 引用类型包括类(class)、接口(interface)、数组、委托(delegate)、object和string。 其中object和string是两个比较特殊的类型。 object是C#中所有类型(包括所有的值类型和引用类型)根类。 一个引用类型的变量不存储它们所代表的实际数据,而是存储实际数据的引用。引用类型分两步创建:首先在堆栈上创建一个引用变量,然后在堆上创建对象本身,再把这个内存的句柄(也是内存的首地址)赋给引用变量。 3-3 引用类型 string类型是一个从object类直接继承的类型。例如: string s1, s2; s1=ABCD; s2 = s1; 其中,s1,s2是指向字符串的引用变量,s1的值是字符串“ABCD”存放在内存的地址,这就是对字符串的引用,两个引用型变量之间的赋值,使得s2、s1都是对“ABCD”的引用。如图2.2所解。 装箱和拆箱 2-1 装箱是将值类型转换为引用类型 拆箱是将引用类型转换为值类型 利用装箱和拆箱功能,可通过允许值类型的任何值与 Object 类型的值相互转换,将值类型与引用类型链接起来 装箱和拆箱 2-2 2.1.3 值类型与引用类型关系 实例的装箱操作说明如图2.3所示。 2.1.3 值类型与引用类型关系 注意:当一个装箱操作把值类型转换为一个引用类型时,不需要显示地强制类型转换;而拆箱操作把引用类型转换到值类型时,由于它可以强制转换到任何可以相容的值类型,所以必须显示地强制类型转换 。 4.7 变量转换 变量转换(variable conversion)使一种类型的变量可以被视为另一种类型。 转换可以分为隐式转换(implicit conversion)和显式转换(explicit conversion)。 为什么需要类型转换 编译器要确切地知道数据的类型 怎样进行隐式类型转换 隐式转换:自
显示全部
相似文档