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의 도움을 받아 작성하였습니다.
댓글 없음:
댓글 쓰기