개발/C#
as, is 연산자
EPdev
2020. 7. 21. 13:43
728x90
as 와 is 연산자는 무엇일까?
간단하게 말하자면 형변환과 관련되어 있다.
1. as
오류를 발생시키지 않고 형변환이 가능한지 확인할 수 있다. 형변환이 된다고 하면, 해당 인스턴스를 반환하고 불가능하면 null 을 반환한다.
Unit unit = new Unit();
Warrior warrior = unit as Warrior;
// 형변환이 가능하면 warrior는 Warrior 인스턴스를 가지고, 불가능하면 null을 가진다.
단, 참조 형식끼리만 사용가능하다. (int 같은 값 형식과는 사용이 안됨.)
2. is
as가 형변환하고 인스턴스 또는 null을 반환하는 반면, is는 bool형의 true/false를 반환한다. 또, 다른 특징은 as와는 달리 값 형식에서도 사용할 수 있다.
둘을 사용하는 기준은
형 변환 후 인스턴스가 필요하면 as를 사용하고
단순 가능여부만 필요하면 is를 사용하면 될 것이다.
728x90