안녕하세요

프로그램 과정에서 막혔던 문제들에 대한 해결책 정리


페이지 목록

2025년 12월 14일 일요일

[유니티][Unity][C#] If ... is ... ... 과 (... as ...)?.Function() 에 대하여

 IMainCharAttackView Interface와

MainCharAttackView: ImainCharAttackView 로 인터페이스를 상속받는 class가 있을때


IMainCharAttackView _view;


MainCharAttackPresenter(IMainCharAttackView view)
{

  _view = view;

}


로 되어 있을 때 이런 식으로 사용하게 된다.


if( _view is MainCharAttackView concreteView)

   concreteView.function();

}

  이 뜻은 _view가 MainCharAttackView 라면 concreteView에 _view를 할당해서 쓰라는 것이다.

 그래서 MainCharAttackView의 function을 concreteView가 사용하게 된다.


사실은 _view가 이미 MainCharAttackView 타입이기에 그냥 써도 되지만 이런 if문을 씀으로 인해서 정확하게 MainCharAttackView 형임을 확인하고 명확하게 concreteView를 통해 안정적으로 실행하게 된다.


(_view as MainCharAttackView)?.Function() 은

 _view를 MainCharAttackView형으로 바꿨을 때 된다면 Function을 실행하고

형이 안 맞으면 null값을 반환하라는 뜻이다.


 Google AI의 도움을 받아 작성하였습니다.


댓글 없음:

댓글 쓰기