如何确定对象的大小?

时间:2011-08-22 05:24:20

标签: .net vb.net class object

Public Class A
    Private aa As Integer
    Dim bb As Integer
    Public cc As Integer
End Class

Public Class B
    Inherits A

    Private dd As Integer
    Dim ee As Integer
    Public ff As Integer
End Class

Public Class C
    Dim oA As New A
End Class

对象oA的大小是多少?
如果A类和B类包含方法怎么办?(我的意思是对象的大小)
如果继承的类B包含重写的方法怎么办?(对象的大小)
如果继承的B类包含与A类同名的变量怎么办?(对象的大小)

我需要理论答案。那些访问说明符Private,Dim,Public是否因为它们的范围不同而在分配内存方面有什么不同? 在什么基础上为方法分配内存?等

1 个答案:

答案 0 :(得分:2)

  • oA是一个包含引用的变量,而不是一个对象;引用的大小取决于平台,但x86上通常为4个字节,x64上为8个字节
  • oA引用的对象的类型为A,并且有3个整数,因此大小为12个字节加上标准对象标题
  • 方法不会影响对象大小(无论是直接还是继承)
  • 类型B的实例有6个整数(3个直接,3个继承自A);任何名称重叠都不会影响它们存在的事实 - 因此大小为24字节加上标准对象标题