C#비동기와 이벤트

delegate와 event

메서드를 값처럼 전달하거나 특정 시점의 알림 구조를 만들 때 쓰는 `delegate`와 `event` 기본 패턴입니다.

마지막 수정 2026년 3월 15일

기본 패턴

csharp
public event Action? Clicked;

public void RaiseClick()
{
    Clicked?.Invoke();
}

설명

  • delegate는 메서드를 참조하는 타입입니다.
  • Action, Func는 자주 쓰는 기본 delegate입니다.
  • event는 외부에서 임의 호출하지 못하게 막으면서 구독 구조를 만들 때 씁니다.

빠른 정리

요소의미
Action반환값 없는 메서드 참조
Func<T>반환값 있는 메서드 참조
event구독/알림용 래퍼

주의할 점

이벤트를 구독만 하고 해제하지 않으면 메모리 누수나 예상치 못한 호출이 남을 수 있습니다.