728x90
델리게이트(Delegate)
- 메서드를 참조할 수 있는 형식 안전한 개체이다.
- 델리게이트는 메서드를 변수처럼 저장할 수 있게 해주며, 메서드에 대한 참조를 호출 시점까지 연기하여 동적으로 메서드를 호출할 수 있는 유연성을 제공한다. 이는 콜백 함수, 이벤트 처리기 및 기타 다양한 패턴에서 유용하게 사용할 수 있다.
델리게이트의 주요 특징
- 형식 안정성
- 델리게이트는 특정 메서드 시그니처(반환 타입과 매개변수 목록)를 정의한다.
- 델리게이트가 참조할 수 있는 메서드는 반드시 이 시그니처와 일치해야 한다.
- 다중 캐스팅
- 델리게이트는 여러 메서드를 호출할 수 있다.
- 델리게이트 인스턴스에 여러 메서드를 추가하면, 델리게이트를 호출할 때 해당 메서드들이 차례로 호출된다.
- 익명 메서드 및 람다식 지원
- 델리게이트는 익명 메서드 또는 람다식과 함께 사용할 수 있다.
델리게이트 정의
- 델리게이트는 메서드 시그니처와 반환 타입을 포함하는 형식을 정의한다.
public delegate void MyDelegate(string message)
- 이 델리게이트는 string 타입의 매개변수를 받고, void를 반환하는 메서드를 참조할 수 있다.
사용 사례
- 이벤트 처리
- 델리게이트는 C#에서 이벤트를 구현하는 기본 메커니즘이다.
- 이벤트는 특정 작업이 발생할 때 호출되는 메서드를 나타내기 위해 델리게이트를 사용한다.
- 콜백 메서드
- 비동기 작업이 완료되었을 때 호출되는 메서드와 같이 콜백 메서드를 정의하는 데 사용된다.
- LINQ
- 델리게이트는 람다식을 통해 LINQ 쿼리에서 자주 사용된다.
- 예를 들어, Func<T, TResult>와 Action<T>는 LINQ 쿼리에서 자주 사용되는 델리게이트 유형이다.
728x90
'언어 > C#' 카테고리의 다른 글
SortedDictionary<TKey, TValue> (0) | 2024.08.07 |
---|---|
yield return (0) | 2024.08.07 |
ConcurrentDictionary.AddOrUpdate(value1, value2, (k,v) ⇒ value2) 메서드 (0) | 2024.08.06 |
ConcurrentDictionary.TryAdd 메서드 (0) | 2024.08.06 |
Google.Protobuf IDeepClonealbe<T> (0) | 2024.08.06 |