Jon*_*eet 18

考虑两个变量:

SomeReferenceType x;
SomeValueType y;
Run Code Online (Sandbox Code Playgroud)

x是一个引用 - 它将为null或对对象的引用,该对象本身是一个实例SomeReferenceType或派生类.价值x本身不是对象.

y是数据本身 - 如果SomeValueType有三个字段,则值y将直接包含这些字段.

这是一个非常简短的总结 - 请参阅Eric Lippert关于价值类型的博客文章我的文章以获取更多信息.(您可能也对我关于参数传递的文章感兴趣,这篇文章是相关的,但不完全相同.)


Mar*_*rco 8

顾名思义,值类型是存储在内存中的值; 引用类型是(一种)指向对象的指针(类,对象等......)

来自微软:

如果数据类型将数据保存在其自己的内存分配中,则该数据类型是值类型.引用类型包含指向保存数据的另一个内存位置的指针.

值类型
值类型包括以下内容:

  • 所有数字数据类型
  • 布尔值,字符和日期
  • 所有结构,即使其成员是引用类型
  • 枚举,因为它们的基础类型始终是SByte,Short,Integer,Long,Byte,UShort,UInteger或ULong

参考类型
参考类型包括以下内容:

  • 所有数组,即使它们的元素是值类型
  • 类类型,例如Form
  • 代表