c# - 值类型和原始类型有什么区别?

标签 c# language-agnostic primitive-types

<分区>

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

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

编辑

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

最佳答案

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

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

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

查看更多差异 here

关于c# - 值类型和原始类型有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12680272/

相关文章:

algorithm - 分而治之问题

Java 集合。为什么没有原始类型?

java - 'int' 类型的大数组需要传递给通用数组和集合

c# - 有什么方法可以防止/检测自动/隐式类型转换?

c# - 重写 api 和反序列化对象

c# - 外部身份验证失败时返回哪个 HTTP 状态?

java - 在 java 数组中存储任意基本类型

c# - 解析没有 :Split 的日志字符串

algorithm - 如何以最小化每个分区总和的最大值的方式对整数数组进行分区?

algorithm - 基本算法证明