C#值类型和引用类型
C#值类型和引用类型
C#语言中的每一个类型都直接或间接派生于object类型,即object类型是C#语言所有类型的最终基类型,在此介绍C#语言的最常用的两种类型。
值类型(Value-type):直接或间接从System.ValueType类继承而来,它的变量直接包含其数据,且值不能为null。
引用类型(reference-type): 所有引用类型均隐式派生自System.object。它的变量只存储对其数据的引用(即访问其数据的访问地址)。引用类型的变量又称为对象(object)。对于引用类型而言,两个变量可以引用同一个对象,因此在操作引用类型的变量时,可能同时修改了另外一个引用类型变量的值。
值类型和引用类型的变量存储数据的方式
值类型包括:
- 所有数字数据类型
- Boolean、Char 和 Date
- 所有结构,即使其成员是引用类型
- 枚举,因为其基础类型总是 SByte、Short、Integer、Long、Byte、UShort、UInteger 或 ULong
引用类型包括:
- String
- 所有数组,即使其元素是值类型
- 类类型,如 Form
- 委托
- Object
- 接口
值类型和引用类型的区别:
1、它们存储的位置不一样
2、如果是引用类型,当两个对象指向同一个地方,修改某一个的时候,其它对象的值会发生改变。