C# 에서는 형변환이 C++ 과 달리 복잡하지 않고, 간결하게 떨어진다.
사전 지식
기본적으로 괄호 () 를 기반으로 한 C 스타일의 형변환을 사용할 수으며,
암시적 형변환 역시 지원한다.
AS
as 구문은 '.net FrameWork' 에서 오류를 발생시키는것이 상당히 큰 리소스 낭비임을 알아두면 이해가 쉽다.
as 구문은 오류를 일으키지 않고도 '형 변환이 가능한지' 확인하기 위한 예약어다.
as 구문으로 형 변환이 가능하다면 '지정된 타입의 인스턴스 값' 을 변환하고, 가능하지 않다면 null 을 반환하기 때문에
이를 통해서 형 변환이 성공하였는지 확인할 수 있다.
AS 구문은 참조형 변수에 대해서만 사용이 가능하다,
if ( a as int ) 같은 사용법은 모두 잘못되었다. (int 같은 형식이 아닌 참조형식을 사용해야 함)
뭐랄까 아직 C# 경험이 부족하긴 하나, 내가 본 코드들은 대부분 as 구문을 사용하지 않는다.
IS
as는 형에 대한 변환값 자체를 반환하는 반면, IS는 boolen 값을 변환하기에 보다 사용하는데 편리한 측면이 존재한다.
is 는 as 에 걸린 제약인 '참조형 변수' 에 대해서만 사용이 가능하다는 단점이 없는 예약어이다.
'Programming > C#' 카테고리의 다른 글
[C#] 델리게이트와 이벤트의 차이점 (0) | 2021.03.04 |
---|---|
[C#] IEnumerable 인터페이스 상속 및 객체 열거형 만들기 (0) | 2021.03.03 |
[C#] 인터페이스 사용 이유. (0) | 2020.12.14 |
[C#] Thread, Task 의 간단한 사용법 (0) | 2020.12.01 |
[C#] C++ DLL 을 사용하기. (0) | 2020.09.09 |