2009-09-11 96 views
0

在VB.NET中,如果我创建一个类,它就是一个引用类型。但是,如果这个类充满了价值类型属性,这是如何处理的?如果这个类是即时的但从未填充,我怀疑指向堆的分配。但更多的空间分配在堆栈上的所有值类型属性?如何分配引用类型类中的值类型属性?

回答

1

号当它分配在堆上,每个值类型需要在堆空间。

栈只包含一个单一的基准,不管有多少个字段包含在类。

2

当实例它在堆上的对象分配存储器的引用类型。在高层次上,为对象分配的内存量是保存成员所需的内存总和。

  • 引用类型成员:只分配空间来容纳引用,而不是指向的对象。这占用了4个字节(8上的64位机器)
  • 值类型:分配足够的空间来容纳整个值类型值
1

属性不本身占用空间。田野呢。不需要在属性和字段之间具有一对一的对应关系。

在一间引用类型值类型字段分配你是否不使用它的整个价值型足够的内存。这就像直接在引用类型中定义的值类型中的所有字段。

0

如果类实例化,但从来没有作为填充值类型不能有一个空值并不重要。所以他们实际上会占用尽可能多的内存,即使他们的价值从未被实际分配过。

相关问题