15

阅读一本关于 C# 的书,我注意到有时会提到值类型,有时会提到某些数据类型(例如 int、double)的原始类型。我以为它们是一样的,但它们真的一样还是不一样?

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

编辑

这个问题不仅与 C# 编程语言有关,我想知道即使在任何其他语言中它们有什么不同。

4

3 回答 3

8

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

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

它们不可互换,因为object( System.Object) 是原始类型但不是值类型,结构是值类型但不是原始类型。

在此处查看更多差异

于 2012-10-01T20:12:18.463 回答
6

值类型通常是驻留在 Stack 上的任何类型。

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

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

于 2012-10-01T20:10:20.397 回答
-1

不,他们不是。复制值类型,同时引用引用类型。看图片价值与参考

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

于 2012-10-01T20:10:10.577 回答