언어/C#

델리게이트(Delegate)

에린_1 2024. 8. 7. 09:37
728x90

델리게이트(Delegate)

  • 메서드를 참조할 수 있는 형식 안전한 개체이다.
  • 델리게이트는 메서드를 변수처럼 저장할 수 있게 해주며, 메서드에 대한 참조를 호출 시점까지 연기하여 동적으로 메서드를 호출할 수 있는 유연성을 제공한다. 이는 콜백 함수, 이벤트 처리기 및 기타 다양한 패턴에서 유용하게 사용할 수 있다.

델리게이트의 주요 특징

  1. 형식 안정성
    • 델리게이트는 특정 메서드 시그니처(반환 타입과 매개변수 목록)를 정의한다.
    • 델리게이트가 참조할 수 있는 메서드는 반드시 이 시그니처와 일치해야 한다.
  2. 다중 캐스팅
    • 델리게이트는 여러 메서드를 호출할 수 있다.
    • 델리게이트 인스턴스에 여러 메서드를 추가하면, 델리게이트를 호출할 때 해당 메서드들이 차례로 호출된다.
  3. 익명 메서드 및 람다식 지원
    • 델리게이트는 익명 메서드 또는 람다식과 함께 사용할 수 있다.

델리게이트 정의

  • 델리게이트는 메서드 시그니처와 반환 타입을 포함하는 형식을 정의한다.
public delegate void MyDelegate(string message)
  • 이 델리게이트는 string 타입의 매개변수를 받고, void를 반환하는 메서드를 참조할 수 있다.

사용 사례

  1. 이벤트 처리
    • 델리게이트는 C#에서 이벤트를 구현하는 기본 메커니즘이다.
    • 이벤트는 특정 작업이 발생할 때 호출되는 메서드를 나타내기 위해 델리게이트를 사용한다.
  2. 콜백 메서드
    • 비동기 작업이 완료되었을 때 호출되는 메서드와 같이 콜백 메서드를 정의하는 데 사용된다.
  3. LINQ
    • 델리게이트는 람다식을 통해 LINQ 쿼리에서 자주 사용된다.
    • 예를 들어, Func<T, TResult>와 Action<T>는 LINQ 쿼리에서 자주 사용되는 델리게이트 유형이다.
728x90