2009-05-14 2 views
2

C#에서 인스턴스 (또는 클래스)의 크기를 구할 수있는 방법이 있습니까?C#의 인스턴스 크기

예를 들어, 모든 객체에는 클래스의 가상 메소드 테이블에 대한 포인터, 구현하는 각 인터페이스에 대한 포인터와 물론 클래스 필드가 있습니다.

this에 따르면 기본 객체 크기는 x86에서 12 바이트이지만 적절한 크기를 지정하는 규칙이 있습니까?

+1

궁금한 점 : 왜? 당신은 이것을 무엇을 위해 사용할 것입니까? –

+2

중복 : http://stackoverflow.com/questions/207592/getting-the-size-of-a-field-in-bytes-with-c#207605 –

+0

이렇게 '시적으로'계산할 방법이 없습니다. GC로 측정 하시겠습니까? –

답변

3

당신이하고 싶은 일에 달려 있습니다. 네이티브 코드와 상호 운용성을 위해 유형/객체가 얼마나 큰지 알아내는 데 관심이있는 경우 Marshal.SizeOf()를 사용할 수 있습니다. 그 이외에는 객체의 크기를 측정하는 확실한 방법이 없습니다.