2009-03-14 2 views
3

구조체가 클래스에 있으면 해당 구조체가 클래스와 같이 힙에 저장되는 스레드 (Marc Gravell 및 Jon Skeet의 입력이 있음)를 읽었습니다.구조체에 저장할 때 할당되는 클래스는 어디에 있습니까?

클래스가 구조체의 멤버 인 경우 어떻게됩니까? 수업은 어디에 할당됩니까?

감사

+0

정보 - struct local - ** variable ** (일반적으로 스택에 있음)이 힙에서 끝나는 여러 가지 방법이 있습니다. 캡쳐 된 변수, 반복기 블록 등 –

+0

감사합니다. 이것은 실제로 위에서 언급 한 스레드의 멤버가 언급 한 것입니다 (구조체가 클래스라고 불리는 C# 클래스라고 생각합니다). – dotnetdev

답변

12

클래스는 구조체의 구성원 인 경우에만 다음 참조는 구조체 (인스턴스에 즉 64분의 32 비트 어드레스)에 저장된다. 클래스의 인스턴스는 힙에 이고 항상입니다.

3

여전히 힙에 있습니다. 구조체는 클래스 인스턴스에 대한 참조 (예 : 포인터) 만 포함합니다.

관련 문제