자료 관리

캐스팅 연산자 as

noc777 2024. 10. 10. 20:25

강의를 시청하다 as 연산자를 처음 봐서 이해가 안되어 정리해보는 시간을 가지게 되었습니다.

 

먼저 찾아보려던 as 연산자에 대해 알아보다 캐스팅 연산자라는 개념을 알게 되었습니다.

캐스팅 연산자라는 것은 상속관계의 클래스간에 형변환이 필요할 때 사용합니다. 

as라는 키워드도 상속관계의 클래스의 형변환 여부를 알아보기 위해 사용하는 듯 합니다.

 

강의를 들으며 작성한 코드의 일부를 가져왔습니다.

[대충 어택SO의 매개변수를 받는 함수](AttackSO attackSO)
{

	RangedAttackSO rangedAttackSO = attackSO as RangedAttackSO;
	if (rangedAttackSO == null) return;
    
    .
    .
    .
    
}

 

해당 코드 RangedAttackSO 는 AttackSO의 하위 클래스이며 

AttackSO 는 공격의 요소를 분류해놓은 클래스

RangedAttackSO는  원거리 공격의 요소를 분류해놓은 클래스입니다.

 

as를 사용하여 매개변수로 받은 attackSO 가 RangedAttackSO로 형변환이 가능한지 알아보는 것이고

만약 RangedAttackSO로 형변환이 가능하다면(원거리 공격이라면)  rangedAttackSO 의 값이

null이 아니므로 밑에 코드를 작성하더라도 실행이 가능하게 됩니다.  (아니라면 return에 의해 종료됨)

 

 

 

 

'자료 관리' 카테고리의 다른 글

Rigidbody - ForceMode  (1) 2024.10.22
유니티 인풋 필드(Input Field)  (1) 2024.10.12
델리게이트, Event  (0) 2024.10.07
Send Messages  (0) 2024.10.07
(Unity 2D) 기본 컴포넌트  (0) 2024.10.06