형변환(CAST)
형변환(cast)이란 어떤 형의 변수를 다른 형식으로 변환하는 것이다.
형은 한 번 선언하면 나중에 다른 형의 값을 대입할 수 없는데 두가지 예외가있다.
첫째. 대입해도 값이 변하지 않을 때
둘째. 형을 형변환했을 때
오늘 게시물은 두번재 형변환에 대해서 포스팅한다.
변수
변수의 형을 형변환 할때 값이 변하지 않는다면 가능하다.
예제)
int a = 123; double x; x = a; // 값이 변하지 않으므로 int형을 double형에 대입 가능( x = 123.0) a = (int)x; // double형의 변수를 int로 형변환하면 대입가능 (a = 123) a = x; // int형 변수 a에 double형 값을 대입하면 컴파일 오류 |
클래스
클래스도 변수와 마찬가지로 부모 클래스를 자식 클래스로 형변환이 가능하다.
예제)
Person p1 = new Person(); UnityChan p2 = new UnityCahn(); p1 = p2; // 자식 클래스의 참조를 부모 클래스에 대입 가능 p2 = p1; // 부모 클래스의 참조를 자식 클래스에 대입시 컴파일오류 p2 = (UnityChan)p1; // 부모 클래스이 참조를 형변환해 자식 클래스에 대입 가능 |
as연산자, 형변환
변수나 클래스 형변환과 as연산자를 사용하여 형변환의 차이점은 실패했을때 나온다.
변수나 클래스 형변환에 실패했을 경우 컴파일 오류를 내지만 as연산자는 형변환 한것을 null을 반환한다.
예제)
p2 = p1 as UnityChan; |
is연산자
형변환이 가능한지 알아보는 연산자다.
is연산자를 사용해서 조사한 결과 형변환이 불가하다면 false값을 반환한다.
예제)
if(p1 is UnityChan) {} // 형변환이 가능하다면 처리를 실행한다. |
'개발 > C#' 카테고리의 다른 글
문자열다루기2 (0) | 2019.02.02 |
---|---|
문자열 다루기 (0) | 2019.01.31 |
상수와 열거 형식 (0) | 2019.01.30 |
[C#] 제네릭과 컬렉션 (0) | 2018.11.29 |
[C#]네임스페이스 (0) | 2018.11.16 |
댓글