- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第3章 类 型
类型是C#语言中最为基本的概念之一。不同类型的变量将拥有不同的数据存储方式和操作方法。但是计算机不像人有聪明的大脑,因此我们需要定义不同的类型去告诉计算机,如何处理这些数据。C#语言的类型系统是统一的,它可以把任何类型的值都按照对象来处理。本章将讲解C#语言中各种类型,主要介绍值类型、引用类型、装箱、拆箱等。
3.1 什么是类型
本节为大家简述C#的类型。C#是一种强类型语言,所有的操作都会经过编译器的类型检查,非法操作将不能通过编译。因此,数据类型更显得重要。C#语言中的每一个类型都直接或间接派生于object类型,即object类型是C#语言所有类型的最终基类型。C#语言的类型可以分为以下3种类型。
值类型(value-type):它的变量直接包含其数据。
引用类型(reference-type):它的变量只存储对其数据的引用(即访问其数据的访问地址)。引用类型的变量又称为对象(object)。
指针类型(point-type):和C、C++语言中的指针类似,而且只能用作在不安全代码中。在C#编程中很少使用指针类型,因此,在此不做详细介绍。
注意:对于值类型而言,值类型的变量总是包含该变量的值,它的值不可能为null。对于引用类型而言,两个变量可以引用同一个对象。因此在操作引用类型的变量时,可能同时修改了另外一个引用类型变量的值。
值类型的变量和引用类型的变量最大的差别就是存储其数据的方式。值类型的变量直接存储其数据,而引用类型的变量直接存储其数据的访问地址。值类型的变量和引用类型的变量存储数据的方式如下图所示。
值类型包含结构类型和枚举类型。结构类型包含数值类型、布尔类型和自定义结构类型。数值类型又包括整数类型、浮点数类型和decimal类型。数值类型包括sbyte、byte、int、uint等类型。引用类型包括object、string、类、接口、委托和数组类型。C#语言的类型关系图如下图所示。
3.2 值 类 型
值类型的变量直接包含其数据,而且其值不可能为null。通俗点讲,值类型是现金,引用类型就是存折。值类型要么是结构类型,要么是枚举类型。在操作值类型的变量时,只会影响该变量的数据,而不会影响另外一个变量的值。所有的值类型都直接或间接派生于System.ValueType类型。本节为大家详细讲述值类型的知识。
注意:System.ValueType类型本身不是值类型,而是引用类型。
值类型包括结构类型、枚举类型、布尔类型、自定义结构类型、sbyte、byte、char、short、ushort、int、uint、long、ulong、float、double和decimal类型。其中,C#语言提供了一种被称为“简单类型(simple type)”的预定义结构类型。这些类型通过C#保留字标识,如char、int等。本节将详细介绍值类型的知识点。
3.2.1 值类型的基础——System.ValueType类型
System.ValueType是值类型的基础。所有的值类型都是由它直接或者间接继承而来。它包括以下三个方法:
注意:System.ValueType类型本身不是值类型,而是引用类型,且继承于object类型。
Equals():判定当前实例与指定的对象是否相等。
GetHashCode():返回当前实例的哈希代码。该哈希代码用于哈希表(一种数据结构)的散列运算。
ToString():返回当前实例的完全限定类型名称。
【示例3-1】下面声明一个类型为System.ValueType的、值为10、名称为x的变量,并调用ToString()方法获取该变量的字符串表示形式。最后,在控制台上输出x变量的字符串表示形式。
System.ValueType x = 10; ///声明x变量,并赋值为10
Console.WriteLine(x.ToString()); ///获取x变量的字符串表示形式,并显示在控制台中
分析:上述代码执行之后,将显示x变量的哈希代码10。
3.2.2 整数类型
整数类型的变量的值为整型。根据各个变量所占位数空间的不同,C#语言提供了9种类型的整数类型,如sbyte、byte、short等。它们的具体说明、.NET Framework中的名称和取值范围如下表所示。
类 型
描 述
.NET Framework中的名称
取 值 范 围
sbyte
有符号8位整数
System.SByte
–128~127
byte
无符号8位整数
System.Byte
0~255
short
有符号16位整数
System.Int16
–32 768~32 767
ushort
无符号16位整数
System.UInt16
0~65
原创力文档


文档评论(0)