<分区>
当我阅读有关 Java 的内容时,我通常会看到被描述为原始类型 或对象类型 的变量。
当我阅读有关 C# 的内容时,我通常会看到变量被描述为原始类型 或非原始类型?
术语对象类型和非原始类型有什么区别?
<分区>
当我阅读有关 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/