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 |