스파르타 게임개발종합반(Unity)/TIL - 본캠프 매일 공부 기록

2024.05.10 TIL - event, Action, Func, Delegate

테크러너 2024. 5. 10.
public event Action<Vector2> OnMoveEvent; // Action은 무조건 void만 반환해야 아니면 Func

강의 내용중에 "Action은 무조건 void만 반환해야 아니면 Func" 이라고 주석을 달아주시는데 개인적으로 찾아봤다.

 

일단 `event`는 일반적으로 `Delegate`를 통해 정의된다.

이벤트를 발생시키는 클래스는 해당 델리게이트를 이용하여 이벤트를 호출한다.

 

Delegate란?

델리게이트(대리자)는 메서드에 대한 참조를 담는 형식이다. 즉, 메서드를 대신 호출할 수 있는 객체이다.

메서드를 '대신' 호출하니까 대리자라고 불리는 것 같다.

 

그래서! `event`와 같이 사용되는 델리게이트에는 `Action` `Func`가 있다.

둘의 차이는 `Action`은 반환값이 없는 메소드를 호출하고, `Func`은 반환값이 있는 메소드를 호출한다.

반응형

댓글