1
我正在寫一些內存敏感的代碼,其中由於各種原因,我必須包含一些值類型。此外,經過一些熱身之後,我需要淨新堆分配爲0.在裝箱了N
值後,我的算法不需要更多存儲空間,但是這些值必須經常更新。我希望能夠重用已經在堆上創建的框。如何重用盒子?
下面的代碼表明盒子沒有被重用(我能想象爲什麼不)。是否有不同的技術,我可以重用每個盒子?
using System;
public class Program
{
public static void Main()
{
object x = 42;
object y = x;
x = 43;
bool isSameBox = Object.ReferenceEquals(x, y);
Console.WriteLine("Same box? {0}.", isSameBox);
}
}
// Output: "Same box? False."
裝箱不會將值類型(即int)設置爲引用類型。您可以使用類來存儲值類型並重用它。 – Eric