值类型和基本类型有什么区别? [已关闭]

问题描述 投票:0回答:3

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

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

编辑

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

c# language-agnostic primitive-types
3个回答
7
投票

原始类型(例如

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

值类型继承自

System.ValueType
并按值传递(以及其他属性)。

C# 中的所有原始类型都是值类型,但并非所有值类型(如

DateTime
都是原始类型。

基本类型定义于here


5
投票

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

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

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


-2
投票

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

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

© www.soinside.com 2019 - 2024. All rights reserved.