阅读一本有关 C# 的书,我注意到有时提到某些数据类型的值类型,有时提到原始类型(例如 int、double)。我以为它们是同一个东西,但它们真的是一样还是不同?
值类型和基本类型有什么区别? 它们是一样的吗?
编辑
这个问题不仅与 C# 编程语言有关,我想知道它们在任何其他语言中有何不同。
原始类型(例如
int
)可以直接映射到基类库(BCL)类型(例如System.Int32
)
值类型继承自
System.ValueType
并按值传递(以及其他属性)。
C# 中的所有原始类型都是值类型,但并非所有值类型(如
DateTime
都是原始类型。
基本类型定义于here
值类型通常驻留在堆栈上的任何类型。
原始类型是在编程语言级别定义的类型,通常甚至是值类型,由语言编译器直接支持。
然而,这是一个总结性的一般答案,因为每种编程语言在两种类型之间都有不同的差异集......
不,他们不是。在引用引用类型时复制值类型。看图
编辑 我的错。这是差异的教程: http://www.codeproject.com/Articles/11212/Primitive-Reference-and-Value-Types