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/

相关文章:

c# - 定位到文件夹并执行应用程序 C#

c# - 使用 LINQ 获取三角形返回空三角形

language-agnostic - 何时使用私有(private)成员 - 何时作为函数/方法参数传递

java - 将 BitSet 设置为原始类型?

Java 泛型 - <int> 到 <Integer>

c# - Lambda 和 Expression.Call 扩展方法

c# - datagridview 组合框列更改绑定(bind)列表数据 --> 自动显示

language-agnostic - 斯巴达编程

algorithm - 自动跟踪算法

java - Java中三元运算符中的char转换,打印int值而不是char值