欢迎来到天天文库
浏览记录
ID:39741311
大小:377.22 KB
页数:47页
时间:2019-07-10
《零点起飞学C#之类型x》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第3章类型类型是C#语言中最为基本的概念之一。不同类型的变量将拥有不同的数据存储方式和操作方法。但是计算机不像人有聪明的大脑,因此我们需要定义不同的类型去告诉计算机,如何处理这些数据。C#语言的类型系统是统一的,它可以把任何类型的值都按照对象来处理。本章将讲解C#语言中各种类型,主要介绍值类型、引用类型、装箱、拆箱等。3.1什么是类型本节为大家简述C#的类型。C#是一种强类型语言,所有的操作都会经过编译器的类型检查,非法操作将不能通过编译。因此,数据类型更显得重要。C#语言中的每一个类型都直接或间接派生于object类型,即
2、object类型是C#语言所有类型的最终基类型。C#语言的类型可以分为以下3种类型。值类型(value-type):它的变量直接包含其数据。引用类型(reference-type):它的变量只存储对其数据的引用(即访问其数据的访问地址)。引用类型的变量又称为对象(object)。指针类型(point-type):和C、C++语言中的指针类似,而且只能用作在不安全代码中。在C#编程中很少使用指针类型,因此,在此不做详细介绍。注意:对于值类型而言,值类型的变量总是包含该变量的值,它的值不可能为null。对于引用类型而言,两个变
3、量可以引用同一个对象。因此在操作引用类型的变量时,可能同时修改了另外一个引用类型变量的值。值类型的变量和引用类型的变量最大的差别就是存储其数据的方式。值类型的变量直接存储其数据,而引用类型的变量直接存储其数据的访问地址。值类型的变量和引用类型的变量存储数据的方式如下图所示。值类型包含结构类型和枚举类型。结构类型包含数值类型、布尔类型和自定义结构类型。数值类型又包括整数类型、浮点数类型和decimal类型。数值类型包括sbyte、byte、int、uint等类型。引用类型包括object、string、类、接口、委托和数组类型
4、。C#语言的类型关系图如下图所示。3.2值类型值类型的变量直接包含其数据,而且其值不可能为null。通俗点讲,值类型是现金,引用类型就是存折。值类型要么是结构类型,要么是枚举类型。在操作值类型的变量时,只会影响该变量的数据,而不会影响另外一个变量的值。所有的值类型都直接或间接派生于System.ValueType类型。本节为大家详细讲述值类型的知识。注意:System.ValueType类型本身不是值类型,而是引用类型。值类型包括结构类型、枚举类型、布尔类型、自定义结构类型、sbyte、byte、char、short、us
5、hort、int、uint、long、ulong、float、double和decimal类型。其中,C#语言提供了一种被称为“简单类型(simpletype)”的预定义结构类型。这些类型通过C#保留字标识,如char、int等。本节将详细介绍值类型的知识点。3.2.1值类型的基础——System.ValueType类型System.ValueType是值类型的基础。所有的值类型都是由它直接或者间接继承而来。它包括以下三个方法:注意:System.ValueType类型本身不是值类型,而是引用类型,且继承于object类型
6、。Equals():判定当前实例与指定的对象是否相等。GetHashCode():返回当前实例的哈希代码。该哈希代码用于哈希表(一种数据结构)的散列运算。ToString():返回当前实例的完全限定类型名称。【示例3-1】下面声明一个类型为System.ValueType的、值为10、名称为x的变量,并调用ToString()方法获取该变量的字符串表示形式。最后,在控制台上输出x变量的字符串表示形式。System.ValueTypex=10;///声明x变量,并赋值为10Console.WriteLine(x.ToStrin
7、g());///获取x变量的字符串表示形式,并显示在控制台中分析:上述代码执行之后,将显示x变量的哈希代码10。3.2.2整数类型整数类型的变量的值为整型。根据各个变量所占位数空间的不同,C#语言提供了9种类型的整数类型,如sbyte、byte、short等。它们的具体说明、.NETFramework中的名称和取值范围如下表所示。类型描述.NETFramework中的名称取值范围sbyte有符号8位整数System.SByte–128~127byte无符号8位整数System.Byte0~255short有符号16位整数Sy
8、stem.Int16–32768~32767ushort无符号16位整数System.UInt160~65535int有符号32位整数System.Int32–2147483648~2147483647uint无符号32位整数System.UInt320~4294967295long有符号
此文档下载收益归作者所有