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