簡體   English   中英

Java與C#中的包裝器類

[英]Wrapper Class in Java vs C#

在Java的情況下,我們編寫類似

Integer i = new Integer(20);

在上述情況下,obj是在堆上分配的

如果是C#

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

在這種情況下,對象分配在堆棧上

這些僅僅是實現方式上的差異還是更多的差異?

更正:對於C#,將Integer更改為Int32

C#中沒有Integer ,它的intint32都相同。 對於C#來說,“值類型進入堆棧”是不正確的。 您需要查看Eric Lippert的這篇文章: 有關值類型的真相

編輯:基於評論:

int32和int相同,兩者是同義詞。

您可能希望在Java中包裝原語的許多原因不適用於C#,因為C#具有結構而不是原語。 以下是struct不能用於prmitives的一些東西:

在堆上需要它們時,可以將它們裝箱。 此鏈接對此進行了解釋, 網址為http://msdn.microsoft.com/zh-cn/library/yz2be5wk.aspx

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM