이벤트(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
'CSharp > CSharp 문법' 카테고리의 다른 글
| ValueTask로 비동기 성능 최적화하기 (0) | 2025.09.26 |
|---|---|
| 박싱(Boxing)과 언박싱(Unboxing) 이해하기 (0) | 2025.09.25 |
| nullable<T>로 안전하게 값 형식 다루기 (0) | 2025.09.18 |
| 델리게이트와 이벤트를 활용한 느슨한 결합 구현 (0) | 2025.09.11 |
| default 리터럴로 간결한 초기화 (0) | 2025.09.09 |
댓글