명시적 변환 - 개발자가 컴파일러에게 지시하는것, 캐스트 연산자 사용

int Age = 25;
short sAge = (short)Age;
* 캐스팅에 의해 양변의 타입이 일치되었으므로 잘 대입된다

int i = 123456;
short s = (short)i;
Console.WriteLine(s);
* 큰 타입을 작은타입으로 캐스팅하면 값이 손실될수도 있다
* 16비트의 길이가 s에 값을 저장하지 못하므로 s의 값이 일부는 잘려나가 -7616이 저장된다

double d = 123.456;
int i = (int)d;
Console.WriteLine(i);
* 정수는 소수점 이하를 저장할 수 없으므로 실수를 대입하면 소수이하를 버리고 정부만 대입된다

double d = 1.23;
decimal m = 4.56m;
d = (double)m;
m = (decimal)d;
* 두 타입의 내부구조가 틀리기 때문에 캐스팅이 필요하다

bool b = true;
int i = (int)b;
* 이는 상수이지 수치 값이 아니므로 조건문으로 변환해야 한다



System 네임스페이스의 convert클래스에 각종 타입들을 변환할 수 있는 정적 메소드



예) 문자열을 정수로 변환

string s = "1234";
int i = Convert.ToInt32(s);


예) Parse 정적 메소드를 통해 문자열 타입을 해당 타입으로 변환

string s = "1234";
int i = int.Parse(s);

예) 수치형을 문자열로 변환할때

int i = 1234;
string s = i.ToString();
* 이변환에 의해 숫자 1234가 문자열 "1234"가 된다

Posted by 코딩하는 야구쟁이
,