C#

C# Delegate : 대리자

코샵 2023. 3. 28. 19:12
반응형

소개

C#에서 대리자(delegate)는 메서드를 참조하는 개체입니다. 대리자는 메서드를 다른 메서드에 전달하거나 이벤트 처리를 위해 사용됩니다. 이번 글에서는 C# 대리자에 대해 자세히 살펴보겠습니다.


대리자란?

대리자는 메서드를 참조하는 개체입니다. 대리자를 사용하면 메서드를 다른 메서드에 전달할 수 있습니다. 이는 이벤트 처리에 매우 유용합니다. 대리자는 델리게이트(delegate) 키워드를 사용하여 선언됩니다.


대리자의 예

다음은 대리자의 간단한 예입니다.

delegate int Calculate(int x, int y);

위의 예제에서 Calculate 대리자는 int 형식의 x와 y 매개 변수를 사용하는 메서드를 참조합니다. Calculate 대리자는 int 형식의 값을 반환하는 메서드를 참조해야 합니다.


대리자의 사용

대리자는 메서드를 다른 메서드에 전달하는 데 사용됩니다. 이는 이벤트 처리에 매우 유용합니다. 대리자를 사용하여 이벤트 처리기를 등록하면 이벤트가 발생할 때마다 등록된 이벤트 처리기가 호출됩니다. 다음은 대리자를 사용하여 이벤트 처리기를 등록하는 예입니다.

public delegate void EventHandler(object sender, EventArgs e);

public class Button
{
    public event EventHandler Click;

    public void OnClick()
    {
        if (Click != null)
        {
            Click(this, EventArgs.Empty);
        }
    }
}

위의 예제에서 Button 클래스는 Click 이벤트를 정의합니다. Click 이벤트는 EventHandler 대리자를 사용하여 선언됩니다. Button 클래스의 OnClick() 메서드는 Click 이벤트를 발생시킵니다.


대리자의 장점

대리자를 사용하면 메서드를 다른 메서드에 전달할 수 있습니다. 이는 이벤트 처리에 매우 유용합니다. 대리자를 사용하여 이벤트 처리기를 등록하면 이벤트가 발생할 때마다 등록된 이벤트 처리기가 호출됩니다.


결론

C# 대리자는 메서드를 참조하는 개체입니다. 대리자를 사용하면 메서드를 다른 메서드에 전달하거나 이벤트 처리를 위해 사용할 수 있습니다. 대리자를 사용하면 코드의 유연성이 향상되고 이벤트 처리가 간단해집니다. 이번 글을 통해 C# 대리자에 대해 더욱 자세히 알아보았습니다.