02-数据类型概述
3.1 数据类型概述
**本节视频教学录像:3分钟**
数据类型就是指数据的种类。在应用程序中,要使数据能被计算机识别并处理,需要将数据分为不同的类型,这样做的好处是方便存储和计算。比如对姓名和地址的处理需要使用字符型,在对货币和数量的处理中又需要使用数值类型,这些数据都是不同类型的数据。如姓名“张三”为字符型,年龄“25”为整型等。
**提示** 为什么要定义数据类型? 因为计算机是没有思维的,你只有告诉它,它才知道这是什么。 比如你定义“int a”,计算机才知道a是一个整数,否则就因识别不出来它是什么而出错。
C#的数据类型分为值类型、引用类型和指针类型3大类。值类型包括简单类型、结构类型和枚举类型等。引用类型包括类类型、接口类型、委托类型和数组类型等。指针类型只能用于安全模式。下图展示了各种数据类型及其之间的关系。
值类型的数据存储在内存的堆栈中,可以提供快速访问。如果变量是值类型的,这个变量就包含实际数据,在一个独立的内存区域保存自己的值;如果在代码中修改其值,在内存中会保存修改后的值。C#中的大多数基本数据类型,如整型、字符型、浮点型、布尔型等都是值类型,结构、枚举也属于值类型。
引用类型是指向存储在内存堆中的数据的指针或引用。与纯粹的地址不同,引用总是指向一个对象,而且这个对象具有指定的类型,并且在堆上分配了存储空间。字符串、数组、接口、类等都属于引用类型。引用类型很抽象,就像是一个门牌号码,可以根据门牌号码找到办公室所在位置。值类型和引用类型的基本区别是内存中的存储方式。
所有的值类型均隐式地派生自System.ValueType,并且值类型不能派生出新的类。引用类型的变量又称为对象,可存储对实际数据的引用。常见的引用类型有class、interface、delegate、object和string等。多个引用变量可以附加于一个对象,而且某些引用可以不附加于任何对象,如果声明了一个引用类型的变量,却不将它赋给任何对象,那么它的默认值就是null。相比之下,值类型的值不能是null。
**提示**
为什么要定义数据类型?
因为计算机是没有思维的,你只有告诉它,它才知道这是什么。
比如你定义“int a”,计算机才知道a是一个整数,否则就因识别不出来它是什么而出错。