소개
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# 대리자에 대해 더욱 자세히 알아보았습니다.
'C#' 카테고리의 다른 글
C# 객체지향 다형성 : new, virtual, override, sealed (0) | 2023.03.30 |
---|---|
C# 정규표현식 (0) | 2023.03.29 |
C# Dictionary ContainsKey() vs TryGetValue() (0) | 2023.03.28 |
C# 람다 식 사용 (0) | 2023.03.14 |
C# 딕셔너리 [Dictionary] 사용 방법 (0) | 2023.03.13 |