Microsoft MVP성태의 닷넷 이야기
초보 단순 질문 입니다.,ㅠ [링크 복사], [링크+제목 복사],
조회: 11063
글쓴 사람
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)
1006루로니12/13/201118503윈도우7과 XP의 DLL후킹 처리에 관해서 질문입니다. [3]
1005남산골12/13/201118307안녕하세요!! 첫 인사드립니다. [3]
1004뽀로로12/12/201115491Managed 어셈블리에서의 COM EntryPoint procaddress 문제 [1]
1003나그네12/8/201117606닷넷에서 가상메모리(Commit) 의 크기를 줄이거나 해제하는 방법은 어떻게 해야할지요? [1]
1002나그네11/29/201117245안녕하세요 ^^ 문제가 생겨서 혹시나 여기서라면 답이 나오지 않을까 해서.. [1]
1001선무당11/29/201118272clickonce+ntd 시스템에서 proxy Server 가 개입되는 경우 cache 해결을 위한 방법... [1]
1000초보개발자11/28/201116619웹서비스용 웹 서버의 SSD 가치에 대해서... [1]
999날쌘돌이11/25/201114379ADFS와 WIF 질문 [1]
998윤용한11/9/201116148File Write 도중 정전 발생 시 대처 방법 있나요? [2]
997조장원11/7/201115572Silverlight 에서의 Auth 방법에 대한 고찰 [2]파일 다운로드1
996파몽11/3/201118621VS2010 에서 타겟플랫폼이 x86으로 변경이 된걸일까요? [2]
995강신명10/24/201115194sharepoint2010+win7 client 오류 [2]파일 다운로드1
992라이언10/11/201115260캡션에 chapter numbers 넣기
993정성태10/11/201117893    답변글 [답변]: 캡션에 chapter numbers 넣기
991우상욱8/21/201119512세션 타임 아웃에 관해서 질문드립니다. [2]
990김재영8/20/201122689VS2010의 윈폼의 Load이벤트에서 예외가 잡혀지지 않습니다. [3]파일 다운로드1
989우상욱8/20/201115785polling에 대해 감이 안잡혀서 질문드립니다 [1]
988WooY...8/17/201116189성태님~ 작은 부탁 하나 있습니다~ [2]
987에스패스트8/3/201118042비밀글쓰기가 있으면 참좋을탠대 아쉽네요 ^^ 저 한가지만더.. [5]
986에스패스트8/3/201121101안녕하세요 ^^ 이렇곧도 있군요 ~ 참좋네요 질문 한가지 여쭤볼게요 [6]
985이성환7/27/201117524P/Inovke 관련 질문입니다. [4]파일 다운로드1
983이성환7/13/201125770Mouse이벤트 관련해서 질문있습니다. [10]파일 다운로드2
982궁굼이7/12/201118319TFS2010 사용관련 [2]
981김창욱7/11/201120036주식형태의 프로그램 처럼 SQL서버의 특정 필드 데이터의 변화가 있을때 재 클라이언트가 정보를 갱신 할 수 있게 하는 방법은 없을까요? [2]
980YJ7/7/201119831App Pool idle time 과 WCF 서비스의 비동기 function 호출. [3]
979왕초보7/1/201118000Apache + IIS Redirect [2]
... 61  62  63  [64]  65  66  67  68  69  70  71  72  73  74  75  ...