C# Java与C中的包装类#

C# Java与C中的包装类#,c#,java,.net,C#,Java,.net,对于Java,当我们编写类似 Integer i = new Integer(20); 在上述情况下,obj是在堆上分配的 如果是C# 在这种情况下,对象是在堆栈上分配的 这些仅仅是实现方面的差异,还是还有更多的差异 更正:将C#的整数更改为Int32C#中没有整数,其或和都相同。关于C#说“值类型进入堆栈”是不正确的。您需要查看Eric Lippert的这篇文章: 编辑:根据评论: Int32和int是相同的,两者是同义的。在C#中没有整数,其或和都是相同的。关于C#说“值类型进入堆栈”是

对于Java,当我们编写类似

Integer i = new Integer(20);
在上述情况下,obj是在堆上分配的

如果是C#

在这种情况下,对象是在堆栈上分配的

这些仅仅是实现方面的差异,还是还有更多的差异


更正:将C#的整数更改为Int32

C#中没有
整数,其或和都相同。关于C#说“值类型进入堆栈”是不正确的。您需要查看Eric Lippert的这篇文章:

编辑:根据评论:


Int32和int是相同的,两者是同义的。

在C#中没有
整数,其或和都是相同的。关于C#说“值类型进入堆栈”是不正确的。您需要查看Eric Lippert的这篇文章:

编辑:根据评论:


Int32和int是相同的,两者是同义词。

您希望用Java包装原语的许多原因不适用于C,因为C具有结构而不是原语。以下是structs可以用于prmitives无法实现的一些功能:

  • 他们有办法。Eg显示了可用于int32的方法。例如,转换为字符串是一种方法调用
  • 它们可以用于通用数据结构中。例如List非常好

当堆上需要它们时,可以将它们装箱。此链接对此进行了解释。

您可能希望用Java包装原语的许多原因不适用于C,因为C具有结构而不是原语。以下是structs可以用于prmitives无法实现的一些功能:

  • 他们有办法。Eg显示了可用于int32的方法。例如,转换为字符串是一种方法调用
  • 它们可以用于通用数据结构中。例如List非常好

当堆上需要它们时,可以将它们装箱。此链接对此进行了解释。

如何定义C#的
Integer
?(有
System.Int32
/
int
,但没有
Integer
)…C#没有表示装箱原语的显式类型。它只是一个可以转换回适当类型的对象。它远没有Java中那么复杂。如何为C#定义
Integer
?(有
System.Int32
/
int
,但没有
Integer
)…C#没有表示装箱原语的显式类型。它只是一个可以转换回适当类型的对象。它远没有Java中那么复杂。@Akash,Int32和int是一样的,两者是同义的。@Akash:
int
is
System.Int32
,它只是一个别名。@Akash,你也可以检查这个线程@Akash,Int32和int是相同的,两者是同义的。@Akash:
int
is
System.Int32
,这只是一个别名。@Akash,您也可以检查此线程
Int32 i = new Int32();
i=10;