강의

멘토링

커뮤니티

인프런 커뮤니티 질문&답변

박홍철님의 프로필 이미지
박홍철

작성한 질문수

[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진

UI 자동화 #3

Invoke 사용 이유

해결된 질문

작성

·

300

0

public void OnBeginDrag(PointerEventData eventData)

    {

        if (OnBeginDragHandler != null)

            OnBeginDragHandler.Invoke(eventData);

    }

이 함수에서 OnBeginDragHandler(eventData); 이렇게

사용하지 않고 Invoke(eventData);를 하는 이유가 있을까요?

답변 1

1

Rookiss님의 프로필 이미지
Rookiss
지식공유자

OnBeginDragHandler(eventData) 이렇게 해도 똑같은 의미이고,
내부적으로 Invoke()가 호출됩니다.

개인적으로 C# delegate을 사용할 때 .Invoke()를 호출하는걸 좋아하는데
일단 일반 함수가 아닌 delegate라는 것을 알 수 있어서 가독성이 좋아지고,
또 경우에 따라 nullable을 이용할 수도 있겠죠.
OnBeginDragHandler?.Invoke(eventData); // 널체크 포함

물론 개인적인 의견이니 좋으신 대로 하시면 됩니다.

박홍철님의 프로필 이미지
박홍철

작성한 질문수

질문하기