值类型和原始类型之间有什么区别?

时间:2012-10-01 20:06:31

标签: c# java c primitive primitive-types

读一本关于C#的书我注意到有时会提到一些数据类型的值类型和有时是原始类型(例如int,double)。我以为它们是同一个东西,但它们真的相同或不相同?

值类型和基本类型有什么区别? 它们是一样的吗 ?

修改

问题不仅与C#编程语言有关,我想知道它们在任何其他语言中是如何不同的......

3 个答案:

答案 0 :(得分:6)

值类型通常堆栈中驻留的任何类型。

原始类型是在编程语言级别定义的类型,通常它甚至是一种值类型,直接由语言编译器支持。

然而,这是一个总结性答案,因为每种编程语言在两种类型之间有不同的差异集......

答案 1 :(得分:6)

原始类型(例如int)可以直接映射到基类库(BCL)类型(例如System.Int32

值类型继承自System.ValueType,并通过值(以及其他属性)传递。

它们不可互换,因为objectSystem.Object)是基本类型而不是值类型,结构是值类型但不是原始的。

查看更多差异here

答案 2 :(得分:-1)

不,他们不是。复制值类型,同时引用引用类型。查看图片Value vs Reference

修改 我的错。这是差异的教程: http://www.codeproject.com/Articles/11212/Primitive-Reference-and-Value-Types