在Java的情況下,當我們寫的東西像包裝類在Java中對C#
Integer i = new Integer(20);
在上述情況下的obj是在堆上分配的C#
Int32 i = new Int32();
i=10;
,並在情況
在這種情況下,對象被分配在堆棧上
這些只是實現的區別w還是有更多的差異?
校正:改變整數到的Int32爲C#
在Java的情況下,當我們寫的東西像包裝類在Java中對C#
Integer i = new Integer(20);
在上述情況下的obj是在堆上分配的C#
Int32 i = new Int32();
i=10;
,並在情況
在這種情況下,對象被分配在堆棧上
這些只是實現的區別w還是有更多的差異?
校正:改變整數到的Int32爲C#
有一個在C#沒有Integer
,其任一或int和int32兩者都是一樣的。就C#而言,「價值類型進入堆棧」有些不正確。你需要看到這篇文章從埃裏克利珀: The Truth About Value Types
編輯:基於評論:
的Int32和INT一樣,兩者是同義的。
您可能希望在Java中包裝原語的許多原因不適用於C#,因爲C#具有結構而不是原語。以下是一些結構可以用於無法用原生質做的事情:
當他們需要在堆上時,他們可以被裝箱。這個鏈接解釋它http://msdn.microsoft.com/en-us/library/yz2be5wk.aspx。
如何爲C#定義'Integer'? (有'System.Int32' /'int',但沒有'Integer')... –
C#沒有明確的類型來表示盒裝原語。這只是一個可以轉換回適當類型的對象。它遠沒有Java那樣複雜。 –