본문 바로가기
유니티/팁, 정보 노트

[C#]delegate와 event 정리

by 개발펭귄 2021. 12. 5.
  • delegate는 메소드에 대한 참조로 하나의 타입
  • event는 delegate에 event 키워드를 선언해서 사용

 

둘의 차이점은 "event는 외부에서 직접 호출이 불가능하다"는 것이다. 이벤트 기반 프로그래밍을 할 때 보다 안정적으로 사용할 수 있다.

 

따라서 Delegate는 콜백용도로 사용하고, event는 객체 상태변화나 사건의 발생을 용도로 주로 사용한다.

 

//이벤트 선언
public event Action OnSomethingValueChanged;

//외부에서 이벤트 등록
OnSomethingValueChanged += method;

//외부에서 직접 호출 불가
EventClass.OnSomethingValueChanged?.Invoke(); //Error!!​