簡體   English   中英

如何分配引用類型類中的值類型屬性?

[英]How are value type properties in a refernce type class allocated?

在VB.NET中,如果我創建一個類,則它是引用類型。 但是,如果該類塞滿了值類型屬性,該如何處理? 如果該類已實例化但從未填充,則我懷疑分配了指向堆的指針。 但是,是否為堆棧的所有值類型屬性分配了更多空間?

當實例化引用類型時,它為堆中的對象分配內存。 在較高級別上,為對象分配的內存量是保存成員所需的內存之和。

  • 引用類型成員:僅分配空間來保存引用,而不分配它將指向的對象。 這占用4個字節(在64位計算機上為8個字節)
  • 值類型:分配足夠的空間來容納整個值類型的值

否。在堆上分配它時,每種值類型在堆上都需要空間。

不管類中包含多少個字段,堆棧都只包含一個引用。

屬性本身不會占用空間。 田野做。 屬性和字段之間不需要一一對應。

無論您是否使用引用類型的值類型字段,都將為整個值類型分配足夠的內存。 就像直接在引用類型中定義值類型中的所有字段一樣。

如果類被實例化但從未填充,則無所謂,因為值類型不能具有null值。 因此,即使從未實際分配它們的值,它們實際上也會占用盡可能多的內存。

暫無
暫無

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

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