본문 바로가기
C#

c# 닷넷 기초 - 형변환 (암시적 변환)

by 따봉이 2021. 12. 28.
728x90
반응형

전 시간에는 문자형 기본 타입에 대해 알아보았다. 

문자형 기본타입 복습은 아래 링크를 참조하면 되고 

이번에는 형변환에 대해 알아보자.

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로 담길 것이다. 

 

728x90
반응형

댓글