2011-08-22 7 views
0
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 

개체의 크기는 얼마입니까?
및 클래스 A와 B는 방법이 포함 된 경우? (I 객체의 크기를 의미) 어떤
무엇을 상속 클래스 B는 오버라이드 (override) 방법? (객체의 크기)가 포함되어있는 경우 상속 클래스 B는에서와 동일한 이름을 가진 변수를 포함 어떤 경우
Class A? (대상의 크기)

나는 이론적 인 대답이 필요하다. 이러한 액세스 지정자 인 Private, Dim, Public은 서로 다른 범위로 인해 메모리를 할당하는 데 어떤 차이가 있습니까?
메쏘드에 어떤 기본 메모리가 할당되어 있습니까?개체의 크기를 결정하는 방법은 무엇입니까?

+0

아마도이 방법이 도움이 될 수 있습니까? http://stackoverflow.com/questions/324053/find-out-the-size-of-a-net-object –

답변

2
  • oA은 개체가 아닌 참조를 유지하는 변수입니다. 참조 크기는 플랫폼에 따라 다르지만 일반적으로 x64에서 4 바이트, x64에서는 8 바이트입니다.
  • oAA입니다. 크기는 3 바이트이며 크기는 12 바이트입니다. 표준 객체 헤더 타입 B의 예 6의 정수 (3 직접 3 A에서 상속) 보유
  • 오브젝트 사이즈 (이들이 직접 또는 상속 여부에 상관없이)에 영향을주지 않는
  • 방법; 모든 이름 겹침이 존재한다는 사실에 영향을주지 않습니다. 따라서 크기는 24 바이트와 표준 개체 헤더를 더한 것입니다.
+0

개체 머리글의 크기와 크기는 무엇에 따라 좌우 될까요? – dotNETbeginner

+0

@ dotNETbeginner http://www.simple-talk.com/dotnet/.net-framework/object-overhead-the-hidden-.net-memory--allocation-cost/을 참조하십시오. –

관련 문제