C#
[C#][Unity] is as 캐스팅 연산자
자가라o
2021. 8. 12. 18:45
<개요>
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)
{
// ...
}
}
}