형 변환이 필요할 시, is/as를 사용하는 것이 더 낫다.
as 연산자를 이용한 형 변환
as 연산자를 이용한 형 변환 방법은 다음과 같다.
TypeToCasted castedObject = object as TypeToCasted;
위 코드는 object를 TypeToCasted 형태로 형 변환시키고, 만일 형 변환을 정상적으로 수행하지 못하거나 object가 null인 경우 null 값을 반환한다. 따라서 위와 같은 방식으로 형 변환을 수행하면
TypeToCasted castedObject = object as TypeToCasted;
if(type!=null){...}
else{//report error}
위와 같이 간단한 검사만으로 안전한 코드를 작성할 수 있다. 만일 (TypeToCast)object 를 통해 형변환을 시도하였다면, null인 경우와 더불어 InvalidCastException이 발생하는 경우도 따로 확인해야 했을 것이다.
즉, 형 변환을 요구할 때 as 연산자를 이용하면 null만 확인하면 안전한 코드를 작성할 수 있다.
단, as를 이용한 형 변환은 사용자 정의 형변환에 사용할 수 없다. ..고 한다. 내가 사실 사용자 정의 형 변환을 아직 잘 모른다.. 이 부분은 나중에 돌아와서 보충하도록 하겠다.
as 연산자를 이용한 형 변환이 불가능한 경우
nullable type이 아닌 경우 as를 이용하여 형 변환할 수 없다.
'게임개발 > Effective C#' 카테고리의 다른 글
[Effective C#] string.Format() vs 문자열 보간 (1) | 2023.11.12 |
---|---|
[Effective C#] 2. const vs readonly (0) | 2023.11.07 |
[Effective C#] 1. 지역 변수에 대한 var 사용 (0) | 2023.11.06 |