본문 바로가기
CSharp/CSharp 문법

이벤트(Event)와 델리게이트(Delegate) 기본 활용

by MonoSoft 2025. 9. 24.
728x90
반응형

이벤트(Event)와 델리게이트(Delegate) 기본 활용

C#에서 **델리게이트(delegate)**는 메서드를 참조하는 타입이며, 
**이벤트(event)**는 델리게이트를 기반으로 특정 동작이 발생했을 때 
알림을 전달하는 메커니즘입니다.
UI 버튼 클릭, 데이터 변경 알림 등 다양한 곳에서 활용됩니다.

using System;

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

    // 이벤트 선언
    public event AlarmHandler? OnAlarm;

    public void TriggerAlarm()
    {
        OnAlarm?.Invoke("알람이 울립니다! 🚨");
    }
}

class Program
{
    static void Main()
    {
        Alarm alarm = new Alarm();

        // 이벤트 구독
        alarm.OnAlarm += msg => Console.WriteLine($"[받은 알림] {msg}");

        // 이벤트 발생
        alarm.TriggerAlarm();
    }
}

이벤트는 +=로 구독, -=로 구독 해제가 가능합니다.

EventHandler 또는 EventHandler<T> 제네릭 델리게이트를 쓰면 
더 표준적인 이벤트 패턴을 구현할 수 있습니다.

UI/WinForms/WPF뿐 아니라 콘솔, 서버 프로그래밍에서도 유용하게 사용됩니다.

 


#델리게이트 Delegate
#이벤트 Event
#이벤트핸들러 EventHandler
#구독 Subscription
#알림시스템 NotificationSystem
#CSharp이벤트 CSharpEvent
#코드재사용성 CodeReusability
#실무활용 PracticalUsage
#가독성향상 ReadabilityImprove
#코드패턴 CodePattern

 

 

728x90
반응형

댓글