컴퓨터공학과 가고 싶어했고, 게임만 하면서 시간 보내는 것 보다는 유익할 것 같아, 책 처음 펴서 천천히 앞부터 예제 타이핑하면서 진도 나가고 있습니다.
언어는 C#보고 있고, 책은 뇌를 자극하는 C# 4.0 입니다. 지금 6.0이 최신이던데 고등학교 1학년 때 샀던 책이라...
데이터 보관하기 장에서 박싱/언박싱 예제인데
원래가
56 int A = 123;
object B = (object)A;
int C = (int)B;
Console.WriteLine(A);
Console.WriteLine(B);
Console.WriteLine(C);
입니다. CMD 창에서 정상적으로 123 세개 출력되고, 예제와 같습니다.
제가 이리저리 건드려보다가
56 sbyte A = 123;
object B = (object)A;
int C = (int)B;
Console.WriteLine(A);
Console.WriteLine(B);
Console.WriteLine(C);
이렇게 int A 부분을 sbyte A로 바꾸어 보았는데 (sbyte가 -127 ~ 127 까지라 123은 괜찮을 것이라고 생각했습니다.) 컴파일 과정에서 오류는 안나오는데 CMD 창에서 실행하면
처리되지 않은 예외: System.InvalidCastException: 지정한 캐스트가 잘못되었습니다.
...위치 56줄
이렇게 오류가 납니다.
왜 이런 문제가 생기는 건가요?
댓글 0