Microsoft MVP성태의 닷넷 이야기
초보 단순 질문 입니다.,ㅠ [링크 복사], [링크+제목 복사],
조회: 11061
글쓴 사람
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)
1053폭풍코딩4/19/201216681스마트클라이언트 ctrl-c 복사가 작동하지 않습니다. [1]
1052에슈리온4/17/201233120ClickOnce 배포시 클라이언트의 설치경로를 지정할 수 없나요? [1]
1051최정수4/10/201220022WCF 클라이언트 비정상 종료 관련 [1]
1050에슈리온4/6/201222174관리자 권한과 ClickOnce, 그리고 Bootstrapper문제 [6]
1049김성혁4/4/201216752스마트클라이언트 stand-alone 방식의 배포 문제.. [1]
1048C#조으다3/27/201220281어셈블리 로드 / 언로드와 관련해서.. [6]
1047김우형3/23/201217896WCF 서비스를 이용한 데이터 전송 중 Exception 문의 [1]
1044임동찬2/29/201217758웹에서 COM Exception.. [2]
1043박성준2/24/201216287Lazy<T> 의 지연객체 생성 전에 실 객체의 Attribute분석 [2]파일 다운로드1
1042이성환2/20/201216712BlockingMethod에 빠진 스레드를 즉시 죽이고 싶습니다...;ㅅ; [2]파일 다운로드1
1039김재영2/15/201216058어셈블리에 사용자마다 다른 값을 적용하여 자동 빌드 방법이 있을까요? [2]
1037윈드로니2/12/201217492WPF 관련 질문 드립니다. [2]
1035임동찬2/9/201215865XML, XSD, XMLCodeGenerator 관련 [2]
1033곽성현2/7/201216385훔..윈도우 디바이스 드라이버 관련 [1]
1030궁빈2/2/201218810msbuild를 이용한 웹게시 및 자동 Dist 방법론에 대해 질문 드립니다!! [6]
1028신정환1/30/201216011기존 legacy Windows application이 WoA 환경에서 동작되지 않는 이유가 무얼까요? [2]
1026노현철1/19/201217973WPF가 XP에서 느리게 로딩되는 현상에 대해 질문드립니다. [4]
1025궁그미1/18/201218941네이버 소켓 로그인 이해가 안되는점이 있는데요 [2]
1022선무당1/11/201217025TFS 에서 공통 Assembly 공유 방법에 대해서 해결책이 없을까요? [2]
1021김재영1/8/201216118대리자를 메소드 파라메터로 넘겨도 됩니까? [2]파일 다운로드1
1019남산골11/13/201918720안녕하세요!! 성태님~~ [3]
1018강한구12/29/201122005WPF ClickOnce 배포시 콤포넌트 dll 다운로드 문제에 대하여 질문 있습니다. [1]
1017임동찬12/28/201118936smart client와 xbop, silverlight [6]
1015개똥이12/22/201116355RMCLOCK 설정 관련 질문이요ㅜ [2]
1011사길수12/16/201116409hyper-v 이더넷 카드 관련 문의 좀 드립니다. [1]
1006루로니12/13/201118503윈도우7과 XP의 DLL후킹 처리에 관해서 질문입니다. [3]
... 61  62  [63]  64  65  66  67  68  69  70  71  72  73  74  75  ...