欢迎来到天天文库
浏览记录
ID:32705379
大小:65.22 KB
页数:25页
时间:2019-02-14
《C#C++C语言学会编程第3课类型》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第3课类型类型是C#语言中最为基本的概念之一。不同类型的变量将拥有不同的数据存储方式和操作方法。C#语言的类型系统是统一的,它可以把任何类型的值都按照对象来处理。本章将讲解C#语言中各种类型,主要介绍以下知识点�值类型;�引用类型;�装箱;�拆箱。3.1类型概述C#语言中的每一个类型都直接或间接派生于object类型,即object类型是C#语言所有类型的最终基类型。C#语言的类型可以分为以下3种类型。�值类型(value-type),它的变量直接包含其数据。�引用类型(reference-type
2、),它的变量只存储对其数据的引用(即访问其数据的访问地址)。引用类型的变量又称为对象(object)。�指针类型(point-type),和C、C++语言中的指针类似,而且只能用作在不安全代码中。由于在C#编程中很少使用指针类型,因此,在此不做详细介绍。3.2值类型值类型要么是结构类型,要么是枚举类型。值类型的变量直接包含其数据,而且其值不可能为null。在操作值类型的变量时,只会影响该变量的数据,而不会影响另外一个变量的值。所有的值类型都直接或间接派生于System.ValueType类型。值类型
3、包括结构类型、枚举类型、布尔类型、自定义结构类型、sbyte、byte、char、short、ushort、int、uint、long、ulong、float、double和decimal类型。其中,C#语言提供了一种被称为“简单类型(simpletype)”的预定义结构类型。这些类型通过C#保留字标识,如char、int等。本节将详细介绍值类型的知识点。3.2.1System.ValueType类型所有值类型都直接或间接从System.ValueType类隐式继承而来,并且任何类型不能从值类型派生
4、而来。System.ValueType本身是一个类,它只包含以下3个方法。�Equals(),判定当前实例与指定的对象是否相等。�GetHashCode(),返回当前实例的哈希代码。该哈希代码用于哈希表(一种数据结构)的散列运算。�ToString(),返回当前实例的完全限定类型名称。3.2.2整数类型整数类型包括9种类型,如sbyte、byte、short等。它们的具体说明、.NETFramework中的名称和取值范围如表3.1所示。1.int类型2.long类型3.char类型类型描述.NETF
5、ramework中的名称取值范围sbyte有符号8位整数System.SByte-128~127byte无符号8位整数System.Byte0~255short有符号16位整数System.Int16-32768~32767ushort无符号16位整数System.UInt160!65535int有符号32位整数System.Int32-2147483648~2147483647uint无符号32位整数System.UInt320~4294967295long有符号64位整数System.Int64
6、-9223372036854775808~9223372036854775807ulong无符号64位整数System.UInt640~18446744073709551615char无符号16位整数System.Char0~65535,16位的Unicode字符。3.2.3浮点型C#语言包括两种浮点型:float和double。float类型表示32位的单精度浮点数,它的取值范围为±1.5e-45~±3.4e38。double类型表示64位的双精度浮点数,它的取值范围为±5.0e-324~±1.7
7、e308。浮点数包括以下3种特殊的值。�正零和负零�正无穷大和负无穷大非数字(Not-a-Number)值3.2.4decimal类型decimal类型表示128位的数值,取值范围为±1.0e-28~±7.9e28,特别适用于财务计算和货币计算。和float类型一样,在书写decimal类型的值时,需要在数值后添加后缀m,否则编译出错。与浮点型相比,decimal类型具有较高的精度,但取值范围较小。因此,从浮点型到decimal类型的转换可能会产生溢出异常,而从decimal类型到浮点型的转换则可能
8、导致精度损失。正是由于这些原因,所以,在浮点型和decimal类型之间不存在隐式转换。如果要转换浮点型到decimal类型,则必须使用强制转换方法。3.2.4bool类型bool类型表示布尔逻辑量。它只包含两个值:true和false,而且这两个值意义恰好相反。3.2.6枚举类型枚举(enum)类型也是一种值类型,它具有命名常量的独特的类型。每个枚举类型都有一个基础类型,该基础类型必须为byte、sbyte、short、ushort、int、uint、long或ulo
此文档下载收益归作者所有