2009-09-11 98 views
0

在VB.NET中,如果我創建一個類,它就是一個引用類型。但是,如果這個類充滿了價值類型屬性,這是如何處理的?如果這個類是即時的但從未填充,我懷疑指向堆的分配。但更多的空間分配在堆棧上的所有值類型屬性?如何分配引用類型類中的值類型屬性?

回答

1

號當它分配在堆上,每個值類型需要在堆空間。

棧只包含一個單一的基準,不管有多少個字段包含在類。

2

當實例它在堆上的對象分配存儲器的引用類型。在高層次上,爲對象分配的內存量是保存成員所需的內存總和。

  • 引用類型成員:只分配空間來容納引用,而不是指向的對象。這佔用了4個字節(8上的64位機器)
  • 值類型:分配足夠的空間來容納整個值類型值
1

屬性不本身佔用空間。田野呢。不需要在屬性和字段之間具有一對一的對應關係。

在一間引用類型值類型字段分配你是否不使用它的整個價值型足夠的內存。這就像直接在引用類型中定義的值類型中的所有字段。

0

如果類實例化,但從來沒有作爲填充值類型不能有一個空值並不重要。所以他們實際上會佔用盡可能多的內存,即使他們的價值從未被實際分配過。

相關問題