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