728x90
C#에서 형변환을 수행하는 방법
- as 연산자를 사용하기
- cast 연산자 사용하기
cast 연산자
피연산자 앞에 괄호로 변경할 자료형을 넣어서 자료의 형태를 변환해주는 연산자.
int number = 10;
(string)number; //int 형을 cast를 활용해 string으로 변환한다.
is 연산자
변환의 성공 유무를 확인할 수 있는 연산자.
변환이 가능하면 true, 불가능하면 false를 리턴한다.
if(number is int num) //is 연산자는 주로 조건을 확인할 때 사용한다.
{
num = ... //is 연산자가 true이면 number를 num으로 변환하여 사용할 수 있다.
}
as 연산자
객체의 타입을 변환할 때 사용하는 연산자.
변환에 성공하면 변환 결과를 리턴하고, 실패하면 null 값을 리턴한다.
var age = number as int; //이 경우 형변환에 실패하면 age에는 null값이 들어간다.
형변환에 as 연산자를 추천하는 이유
1. 형변환시 as를 사용하면 코드의 길이가 짧아지고 가독성이 좋아진다.
cast의 경우 try, catch 구문을 사용해서 예외 처리를 해야 하지만, as는 사용하지 않아도 된다.
2. cast 보다 as가 빠르다.
사용자가 정의한 형변환 연산자를 고려하지 않기 때문에 더 빠르다.
3. 동일한 결과를 반환한다. (일관적이다.)
어떤 타입의 변수를 받던지 항상 동일한 결과를 반환한다.
as를 사용할 수 없는 경우
1. value 타입에 대한 형변환을 수행할 경우
이 때는 is와 혼합해서 cast를 사용해야 한다.
2. foreach 구문을 사용할 경우
value와 reference 타입 둘 다 형 변환을 해야 하기 때문에 내부적으로 cast를 사용한다.
반응형
'개발공부 > C#' 카테고리의 다른 글
[Effective C#] 아이템 7 : 델리게이트를 이용하여 콜백을 표현하라 (0) | 2021.11.22 |
---|---|
[Effective C#] 아이템 6 : nameof() 연산자를 적극 활용하라 (0) | 2021.11.21 |
[Effective C#] 아이템 4 : string.Format()을 보간 문자열로 대체해라 (0) | 2021.11.21 |
[Effective C#] 아이템 2 : const와 readonly 차이 (0) | 2021.11.19 |
C# 변수와 데이터 형식 (0) | 2021.10.24 |