Java与C#的包装类

时间:2012-07-03 04:31:48

标签: c# java .net

在Java的情况下我们写了类似

的东西
Integer i = new Integer(20);

在上面的例子中,obj在堆上分配

如果是C#

Int32 i = new Int32();
i=10;

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

这些只是实施方面的差异还是存在更多差异?

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

2 个答案:

答案 0 :(得分:3)

C#中没有Integer,其intint32都是相同的。关于C#说“值类型转到堆栈”是一些不正确的。你需要看看Eric Lippert的这篇文章: The Truth About Value Types

编辑:根据评论:

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

答案 1 :(得分:3)

您可能希望在Java中包装基元的许多原因不适用于C#,因为C#具有结构而不是基元。以下是一些可用于结构的东西:priveives无法实现的结构:

当堆上需要它们时,它们可以装箱。此链接说明了它http://msdn.microsoft.com/en-us/library/yz2be5wk.aspx