关于C#中的原始数据类型

麦西耶

此MSDN文章处理数据类型。

它说:

对于Java中的每种原始数据类型,核心类库都提供了一个包装器类,将其表示为Java对象。例如,Int32类包装了int数据类型,而Double类包装了double数据类型。

另一方面,C#中的所有原始数据类型都是System名称空间中的对象。对于每种数据类型,都提供了一个简短的名称或别名。例如,int是System.Int32的缩写,而double是System.Double的缩写。

我运行了Mono代码以读取System.Int32 struct的实现

我发现了几行迫使我问这个问题:

public const int MaxValue = 0x7fffffff;
public const int MinValue = -2147483648;

// This field is looked up by name in the runtime
internal int m_value;

我假设MS将以相同的方式实现该结构。这和包装器有什么不同吗?文件试图传达什么?

如果可以相信MSDN,那么System.Int32结构将是无限递归的,至少对我来说是极大的困惑。

杰森

这和包装器有什么不同吗?

有没有包装类型的基本类型在C#中好像有在Java和别名intSystem.Int32不喜欢的包装东西。它只是System.Int32一个不同的名字。

C#中的原始类型可以像Java中那样装箱,但是在C#中被装箱时它们被装箱,System.Object而在Java中被装箱到它们的包装器类型。

文件试图传达什么?

这两种相似但不同的语言之间是有区别的。乍一看,这些东西看起来是一样的:

Java:int->Integer

C#:int->System.Int32

但是,事实并非如此在Java中,它int是一种原始类型,并且Integer是一个类,intint需要装箱s,它充当包装器在C#中,intSystem.Int32是完全相同的东西 (原始类型)

如果可以相信MSDN,那么System.Int32结构将是无限递归的,至少对我来说是极大的困惑。

System.Int32int恰好在C#同一类型; int仅仅是的便捷别名System.Int32在Java中,intInteger不同的在C#中,int并且System.Int32没有不同的。

因此,非常清楚:

public const int MaxValue = 0x7fffffff;
public const int MinValue = -2147483648;

// This field is looked up by name in the runtime
internal int m_value;

可以重写为

public const System.Int32 MaxValue = 0x7fffffff;
public const System.Int32 MinValue = -2147483648;

// This field is looked up by name in the runtime
internal System.Int32 m_value;

这根本不会改变含义,因为intSystem.Int32完全相同的东西。然后,对于内置类型特殊处理,您应该参考上一个问题

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类常见问题

如何在C#中创建原始数据类型?

来自分类Dev

了解JavaScript中的原始数据类型

来自分类Dev

PERL中的JSON解码-保持原始数据类型

来自分类Dev

从Java中的catch块返回原始数据类型

来自分类Dev

在 Kotlin 中读取原始数据类型值

来自分类Dev

在C ++中将原始数据类型传递给函数

来自分类Dev

覆盖原始数据类型的转换

来自分类Dev

如何检测原始数据类型?

来自分类Dev

验证原始数据类型

来自分类Dev

Javascript中的Refreence数据类型和原始数据类型

来自分类Dev

Drools 中原始数据类型与非原始数据类型的性能

来自分类Dev

无法使用 Scala 从 Cassandra DB 中读取原始数据类型映射中的数据

来自分类Dev

XML模式世界中的黑白原始数据类型和派生数据类型有什么区别?

来自分类Dev

对于Java中的这种情况,为什么原始数据类型比参考数据类型消耗更多的内存?

来自分类Dev

对于Java中的这种情况,为什么原始数据类型比参考数据类型消耗更多的内存?

来自分类Dev

在Pandas DataFrame中返回具有原始数据类型的元素

来自分类Dev

在Java中,为什么String是非原始数据类型?

来自分类Dev

Java中的原始数据类型和可移植性

来自分类Dev

是否可以在Java中创建自己的原始数据类型。像int,float,double

来自分类Dev

如何在dapper中返回原始数据类型的元组

来自分类Dev

如何在HBase中存储原始数据类型并进行检索

来自分类Dev

我如何将原始数据类型与Java中的泛型区分开?

来自分类Dev

为什么要对char或数组以外的原始数据类型使用malloc?C

来自分类Dev

具有原始数据类型的Java模板作为C ++模板

来自分类Dev

$ .makeArray()在“真实”数组和原始数据类型上

来自分类Dev

什么因素决定了原始数据类型的大小?

来自分类Dev

将通用参数转换为原始数据类型

来自分类Dev

Java原始数据类型在堆栈还是堆上?

来自分类Dev

双类别vs双原始数据类型

Related 相关文章

  1. 1

    如何在C#中创建原始数据类型?

  2. 2

    了解JavaScript中的原始数据类型

  3. 3

    PERL中的JSON解码-保持原始数据类型

  4. 4

    从Java中的catch块返回原始数据类型

  5. 5

    在 Kotlin 中读取原始数据类型值

  6. 6

    在C ++中将原始数据类型传递给函数

  7. 7

    覆盖原始数据类型的转换

  8. 8

    如何检测原始数据类型?

  9. 9

    验证原始数据类型

  10. 10

    Javascript中的Refreence数据类型和原始数据类型

  11. 11

    Drools 中原始数据类型与非原始数据类型的性能

  12. 12

    无法使用 Scala 从 Cassandra DB 中读取原始数据类型映射中的数据

  13. 13

    XML模式世界中的黑白原始数据类型和派生数据类型有什么区别?

  14. 14

    对于Java中的这种情况,为什么原始数据类型比参考数据类型消耗更多的内存?

  15. 15

    对于Java中的这种情况,为什么原始数据类型比参考数据类型消耗更多的内存?

  16. 16

    在Pandas DataFrame中返回具有原始数据类型的元素

  17. 17

    在Java中,为什么String是非原始数据类型?

  18. 18

    Java中的原始数据类型和可移植性

  19. 19

    是否可以在Java中创建自己的原始数据类型。像int,float,double

  20. 20

    如何在dapper中返回原始数据类型的元组

  21. 21

    如何在HBase中存储原始数据类型并进行检索

  22. 22

    我如何将原始数据类型与Java中的泛型区分开?

  23. 23

    为什么要对char或数组以外的原始数据类型使用malloc?C

  24. 24

    具有原始数据类型的Java模板作为C ++模板

  25. 25

    $ .makeArray()在“真实”数组和原始数据类型上

  26. 26

    什么因素决定了原始数据类型的大小?

  27. 27

    将通用参数转换为原始数据类型

  28. 28

    Java原始数据类型在堆栈还是堆上?

  29. 29

    双类别vs双原始数据类型

热门标签

归档