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、如果是引用类型,当两个对象指向同一个地方,修改某一个的时候,其它对象的值会发生改变。

原文地址:https://www.cnblogs.com/dyf96966/p/5438978.html