본문 바로가기

C#

C# 델리게이트와 이벤트

1. 델리게이트와 이벤트 개념

델리게이트는 메서드 참조를 저장하는 타입으로, 메서드를 변수처럼 다룰 수 있습니다. 이벤트는 델리게이트 기반으로 특정 상황이 발생했을 때 등록된 메서드를 호출하는 기능입니다. 주로 이벤트는 UI나 비동기 상황에 사용됩니다.

2. 코드 예제

다음은 델리게이트와 이벤트를 활용한 간단한 예제입니다. 버튼 클릭 시 이벤트가 발생하여 등록된 메서드가 호출됩니다.

using System;

class Program
{
    // 델리게이트 선언
    public delegate void ClickHandler(string message);

    // 이벤트 선언
    public event ClickHandler OnClick;

    // 클릭 메서드
    public void Click()
    {
        // 이벤트 호출
        OnClick?.Invoke("버튼이 클릭되었습니다.");
    }

    static void Main()
    {
        Program button = new Program();

        // 이벤트에 메서드 등록
        button.OnClick += (msg) => Console.WriteLine(msg);

        button.Click();
    }
}

3. 주의사항과 팁

이벤트는 외부에서 직접 호출할 수 없고 델리게이트로만 접근합니다. 이벤트 구독 해제(구독 취소)를 반드시 해주어야 메모리 누수를 방지할 수 있습니다. 델리게이트는 여러 메서드를 연결하는 멀티캐스트로도 활용 가능합니다.

'C#' 카테고리의 다른 글

C# 속성 (Properties)과 자동 속성  (0) 2026.04.01
C# 확장 메서드  (0) 2026.04.01
C# 제네릭 (Generics) 기초  (0) 2026.03.31
C# Nullable 참조 타입  (0) 2026.03.30
C# 레코드 타입 (Record)  (0) 2026.03.27