c# 닷넷 기초 - 형변환 (암시적 변환)
전 시간에는 문자형 기본 타입에 대해 알아보았다.
문자형 기본타입 복습은 아래 링크를 참조하면 되고
이번에는 형변환에 대해 알아보자.
https://ttleader.tistory.com/115?category=1053713
C# 닷넷 기초 - 문자형 기본 타입 (string, char) 문자열과 숫자 더하기/조합하기
C#에서 자료형 타입 중 문자형 타입은 2가지를 제공한다. 1. char : 문자 한글자만 담을 수 있음 (영문자1개 or 숫자1개 or 한글1자), 작은따옴표 사용 2. string : 문자 한글자는 물론 긴문장의 문자열까
ttleader.tistory.com
c#에서 자료형 변수를 선언해서 사용하다보면 숫자형 변수를 문자형에 대입해야 하는 경우도 있고
반대로 문자형을 숫자형에 대입하는 경우도 있다.
그리고 데이터 크기가 큰 데이터타입에서 작은 데이터 타입으로도 옮기는 경우도 있다.
이런 부분들이 어떻게 처리되는지 테스트해보자.
1. 암시적 변환
byte bt = 100;
short st = b;
Console.WriteLine(st);
//출력결과
100
위 경우를 보면 Byte는 0~255까지 이고 short는 -32,768 ~32,767까지의 숫자를 담을 수 있다.
byte를 따로 short로 형변환을 하지 않고 대입을 했는데 정상적으로 대입이 됐다.
따로 지정하거나 명시를 하지 않았는데 자동으로 변환인 된 경우를 암시적 변환이라고 한다.
오류가 나지 않는 이유는 작은그릇에 있는 것을 큰 그릇에 넣는 건 당연히 문제가 없을 것이다.
하지만 반대로 큰 그릇에 있는 것을 작은그릇에 넣으려고 한다면?
아래와 같이 형변환 오류가 발생한다.
암시작 형변환이 불가능하여
(byte)캐스팅으로 임의 형변환을 하더라도 a가 255보다 클 경우 c는 255까지만 담을 수 있으므로
아무리 큰 숫자가 대입되어도 c는 255로 담길 것이다.