<개요>
is, as는 C#의 캐스팅 연산자로 객체를 캐스팅 할때 사용.
- 기본적으로 상속관계의 클래스간 하향캐스팅을 할 때 사용된다.
- 하향캐스팅은 명시적으로 이루어져야 하는데 실행시점에 실패 할 가능성이 있다.
- is, as 연산자를 사용하면 런타임을 거치지않고도 성공유무를 확인 할 수있다.
<is 연산자>
캐스팅후 캐스팅 결과에 따라 bool값을 리턴한다.
(캐스팅이 가능하다면 true / 캐스팅이 불가능하면 false를 반환한다.)
값타입, 참조타입 모두 사용가능
class child{ ... }
void Test()
{
int i = 0;
if (i is child)
{
}
}
<as 연산자>
캐스팅이 가능하다면 캐스팅 결과를 반환하고 / 캐스팅이 불가능하면 null을 반환한다.
참조 타입끼리만 사용 가능하다.
<사용예>
public class parent
{
// 부모클래스
}
public class child : parent
{
// 부모클래스를 상속한 자식클래스
}
public class castingTest : MonoBehaviour
{
void Test()
{
child c = new child();
parent p = new parent();
// as 연산자의 사용
p = c as parent;
// is 연산자의 사용
if(c is parent)
{
// ...
}
}
}
'C#' 카테고리의 다른 글
[C#] 부동소수점 ( + int의 float 변환) (0) | 2021.11.24 |
---|---|
[C#] GC 가비지 컬렉션 (0) | 2021.10.17 |
[C#][Unity] Extention (확장 메서드) (0) | 2021.08.01 |