Microsoft MVP성태의 닷넷 이야기
초보 단순 질문 입니다.,ㅠ [링크 복사], [링크+제목 복사],
조회: 11052
글쓴 사람
C#초보
홈페이지
첨부 파일
 

C#에서 구조체는 상속이 불가능 하다고 배웠습니다.

그런데 Object 클래스로 어떻게 캐스팅이 가능한 건가요?

모든 객체는 Object에서 파생된다고 설명은 나와 있지만

구조체는 상속이 불가능한데 어떻게 파생되는 건지 궁금합니다.

int i = 1;
object o = i; // 구조체 int는 상속이 불가능한데 내부적으로 어떻가능한 것인지..?








[최초 등록일: ]
[최종 수정일: 5/9/2022]


비밀번호

댓글 작성자
 



2022-05-09 02시03분
struct(구조체)는 상속이 불가능하지만 구조체는 암시적으로 System.ValueType을 상속받고, 다시 그것은 System.Object를 상속받기 때문에 object로의 형변환이 가능합니다.

문제는, 구조체의 경우 값 형식이고 object의 경우에는 참조 형식이라는 점입니다. 그래서 "object o = i"는 상속으로 인한 형변환에 대해서는 자연스럽지만, 값/참조 형식에서의 변환이 자연스럽지 않다는 문제가 있습니다.

그래서, 닷넷은 이런 경우 박싱/언박싱 작업을 합니다. 값 형식인 i가 참조 형식인 o로 대입이 되면, GC 힙 메모리에 i를 복사해 버리는 박싱 작업을 합니다. 그리고 다시 그것을 "int j = (int)o;"라고 값을 빼오는 작업을 하면, GC 힙 메모리에 있던 i 값을 스택의 j 영역으로 복사하는 언박싱 작업을 합니다.

혹시 제 책을 가지고 계시다면 "5.4.2.1 박싱/언박싱" 절을 참고하세요.
정성태

... 61  62  63  64  [65]  66  67  68  69  70  71  72  73  74  75  ...
NoWriterDateCnt.TitleFile(s)
979왕초보7/1/201117995Apache + IIS Redirect [2]
9776/16/201122287웹컨트롤 어느거 쓰는게 좋나요 [1]
976박성준6/13/201117776VS2008 Add-in 구현 관련 질문 [4]
972김길6/6/201120048메모리 해제 예외 처리 관련.. [2]
971강동원5/29/201117565firebird install건 [1]
970임동찬5/18/201118367ASP.net 솔루션 디버깅 관련 [1]
969이성환5/4/201120033WMI 를 사용하지 않고 하드웨어 정보를 가져올 수 없을까요? [3]
968김동미4/28/201119443안녕하세요 다시 한번 문의를 드립니다.. [2]파일 다운로드1
967임동찬4/22/201122191C# using문 관련 [9]
964김동미4/18/201119790wcf IsOneWay 속성관련 문의 입니다..
965정성태4/18/201121159    답변글 [답변]: wcf IsOneWay 속성관련 문의 입니다..
966김동미4/19/201118987        답변글 [답변]: [답변]: wcf IsOneWay 속성관련 문의 입니다.. [1]
963최재훈4/12/201117369wcf inactivityTimeout 설정시 문의 사항이 있습니다. [2]
962임동찬4/8/201117056TFS 사용관련 [1]
961임동찬4/7/201117352XSD & XML & XmlCodeGenerator [2]
960임동찬4/5/201118875XML Schema Editor [4]
959immm3/24/201116687로그인 연동 어려운 건가요? [1]
958꼭지3/3/201118705Supporting compressed request in WCF 3.5 [5]
957임동찬2/21/201119223WCF channel faulted 관련 [2]
956윤용한2/18/201122654WaitHandle.WaitOne 과 Stopwatch에 관한 질문 [3]
955최광욱2/17/201119323TFS 에서 소스 영구 제거 방법 [1]
954한장우2/16/201117048atl activeX 질문이요~ [1]
952박용운2/16/201117910IE8.0에서 BHO [1]
953박용운2/16/201117903    답변글 [답변]: IE8.0에서 BHO
951임동찬2/11/201117937WCF Service Reference [1]
950이성환2/9/201119395Windows application 프로젝트를 참조 했을 때 생성되는 실행파일을 직접 실행 불가능하도록 하고 싶습니다. [6]파일 다운로드1
... 61  62  63  64  [65]  66  67  68  69  70  71  72  73  74  75  ...