java - 术语非原始类型和对象类型有什么区别?

标签 java c# object types primitive

<分区>

当我阅读有关 Java 的内容时,我通常会看到被描述为原始类型对象类型 的变量。

当我阅读有关 C# 的内容时,我通常会看到变量被描述为原始类型非原始类型

术语对象类型非原始类型有什么区别?

最佳答案

这种混淆的部分原因可能在于,在 C# 中,(mostly) everything inherits from Object .以同样的方式引用对象类型,将引用语言中的所有类型,并且本质上是无用的。

在 C# 中,基本类型有 Boolean、Byte、Char、Double、Int16、Int32、Int64、IntPtr、SByte、Single、UInt16、UInt32、UInt64、UIntPtr。这些类型仍然继承自 object,尽管它们在语言中的处理方式有所不同。有一些类型从对象继承,但它们不是您认为的原语(即接口(interface))。可以使用此代码获取 C# 原语列表,取自 here :

var primitives = typeof(int).Assembly.GetTypes().Where(type => type.IsPrimitive).ToArray();

如果您想要这样的东西,更合适的二分法是值类型与引用类型。当您开始考虑这种差异时,您可以包括诸如枚举类型和其他值类型(如结构)之类的东西。

关于java - 术语非原始类型和对象类型有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37503765/

相关文章:

java - 如何使用内容uri检查文件是否存在

Java 2d 数组和桶排序

c# - 使用 C# 的 AWS Lambda 上的 Xml 序列化器导致方法未找到异常

C# FtpWebRequest 设置接口(interface)

javascript - 如何给对象添加索引和值?

ruby - 如何访问类实例引用名?

java - 控制台中出现奇怪的无限循环,但 Applet 中却没有 - Java

java - 使用链表数据结构面对 insertBefore 方法的问题

c# - 视觉 C# Express 2010 : how to set language to C# 2. 0

C# 自定义记录器 - 捕获发送对象的最佳方法