본문 바로가기
Programming/C#

C# 델리게이트(Delegate) 메서드 참조의 강력한 도구

by Dev_카페인 2024. 6. 9.
반응형

[C#] 델리게이트(Delegate) : 메서드 참조의 강력한 도구

안녕하세요! 이번 포스트에서는 C#의 델리게이트(Delegate)에 대해 알아보겠습니다. 델리게이트는 메서드를 참조할 수 있는 형식으로, 이벤트 처리, 콜백 메서드 등 다양한 시나리오에서 사용됩니다.

델리게이트(Delegate)란 무엇인가요?

델리게이트는 메서드를 참조하는 형식으로, 다른 메서드를 호출하거나 이벤트 처리를 위한 콜백 메서드를 지정하는 데 사용됩니다. 델리게이트는 대리자(Delegate) 역할을 수행하여 메서드 호출을 대신합니다.

델리게이트의 선언

public delegate void MyDelegate(int x, int y);

위 예시에서 MyDelegate 델리게이트는 두 개의 int 매개변수를 가지고 void 반환형을 갖는 메서드를 참조할 수 있습니다.

델리게이트의 사용법

델리게이트는 다양한 시나리오에서 유용하게 활용될 수 있습니다. 주로 이벤트 처리, 비동기 프로그래밍, 콜백 메서드 등에서 사용됩니다.

델리게이트를 사용한 이벤트 처리

public delegate void MyDelegate(int x, int y);

public class EventPublisher
{
    public event MyDelegate MyEvent;


    public void DoSomething(int x, int y)
    {
        MyEvent?.Invoke(x, y);
    }
}

class Program
{
    static void Main(string[] args)
    {
        EventPublisher publisher = new EventPublisher();
        publisher.MyEvent += MyEventHandler;

        publisher.DoSomething(10, 20);
    }

    static void MyEventHandler(int x, int y)
    {
        Console.WriteLine($"Event handled: {x}, {y}");
    }
}

위 예시에서 EventPublisher 클래스는 MyEvent라는 이벤트를 선언하고, 이벤트가 발생할 때 등록된 델리게이트를 호출합니다. Main 메서드에서는 MyEventHandler 메서드를 MyEvent에 등록하여 이벤트를 처리합니다.

델리게이트의 유형

델리게이트는 다양한 유형을 가질 수 있습니다. 주요한 델리게이트 유형에는 다음과 같은 것들이 있습니다.

  • Action: 매개변수가 없는 메서드를 나타내는 델리게이트입니다.
  • Func: 결과 값을 반환하는 메서드를 나타내는 델리게이트입니다.
  • Predicate: 불리언 값을 반환하는 메서드를 나타내는 델리게이트입니다.

마치며

이번 포스트에서는 C#의 델리게이트(Delegate)에 대해 알아보았습니다. 델리게이트는 메서드를 참조하는 형식으로, 이벤트 처리나 콜백 메서드 등 다양한 시나리오에서 활용됩니다. 델리게이트를 적절히 활용하면 코드의 유연성을 높일 수 있으며, 이벤트 기반 프로그래밍에서 중요한 역할을 합니다. 추가적인 질문이나 궁금한 점이 있다면 언제든지 댓글로 남겨주세요!

 

 

반응형